Difference between revisions of "Module Class Autoloading"
(Created page with "Module class autoloading enables the automatic loading of classes when stored in a prescribed way within WHMCS modules. It is provided as a tool that makes it easier for modu...") |
(→Usage) |
||
Line 25: | Line 25: | ||
Add the module namespace to the top of your class file(s): | Add the module namespace to the top of your class file(s): | ||
− | + | <source lang="php"> | |
namespace WHMCS\Module\{ModuleType}\{ModuleName}; | namespace WHMCS\Module\{ModuleType}\{ModuleName}; | ||
− | + | </source> | |
To invoke the class, simply add the use statement and invoke as normal: | To invoke the class, simply add the use statement and invoke as normal: |
Revision as of 20:45, 28 July 2016
Module class autoloading enables the automatic loading of classes when stored in a prescribed way within WHMCS modules.
It is provided as a tool that makes it easier for module developers to create helper classes that they can call on and load throughout the WHMCS product from modules, hooks and other custom integration code.
Supported Module Types
The following module types support autoloading.
- Addon
- Fraud
- Gateway
- Registrar
- Report
- Server
- Widget
Usage
Locate your class file(s) in a sub-directory named 'lib' relative to the deployed module. For example:
/path/to/whmcs/modules/{ModuleType}/{ModuleName}/lib/{ClassName}.php
Add the module namespace to the top of your class file(s):
namespace WHMCS\Module\{ModuleType}\{ModuleName};
To invoke the class, simply add the use statement and invoke as normal:
use WHMCS\Module\{ModuleType}\{ModuleName}\{ClassName};
$hello = new {ClassName}();
Example Usage
The following example demonstrates use of the module namespace autoloading for a class named 'HelloWorld' within the addon module 'Sample Provisioning Module':
Filename: /modules/addons/sample-provisioning-module/lib/HelloWorld.php
namespace WHMCS\Module\Addon\SampleProvisioningModule;
/**
* Hello World Class
*
* @copyright Copyright (c)
* @license http://www.whmcs.com/license/ WHMCS Eula
*/
class HelloWorld {
public function printHello()
{
print 'Hello World';
}
}
Filename: /modules/addons/sample-provisioning-module/sample-provisioning-module.php
use WHMCS\Module\Addon\SampleProvisioningModule\HelloWorld;
$hello = new HelloWorld();
$hello->printHello();