The main working file of the hack contains a class that is responsible for configuration parameters, loading modules and libraries, connecting templates, styles and scripts. The class can be extended with any additional functions.
Built-in class functions
Methods and fields of a class are accessed by calling:
$core->hack->hackname->funcname()
Instead of hackname, the name of the class is indicated, instead of funcname - the corresponding function or field.
$core->hack->(name)->conf[$field]
Array with hack config, use read only.
$core->hack->(name)->conf( $field, $val = null )
Returns or changes the configuration of the hack depending on the parameters:
- When called without parameters, returns the entire configuration array.
- When called with one parameter
$field- returns the value of a specific field. - When called with
$fieldand$valparameters, sets the$fieldfield to$val.< /li>
$core->hack->(name)->(library)
Loads and returns the corresponding hack library. The library is loaded and initialized once. Usage example:
$core->hack->proxy->checker->run( 123 );
$core->hach->(name)->mod( $name, $func = false )
Loads the module named $name. If the function name $func is passed, immediately executes the specified function. Convenient for implementing routing.
$core->hack->(name)->tpl( $part, $name )
Loads the $part section template named $name from the templates folder. The .tpl extension is not specified.
$core->hack->(name)->css( $name )
Includes a CSS file named $name from the styles folder. The .css extension is not specified.
$core->hack->(name)->js( $name )
Includes a JS file named $name from the scripts folder. The .js extension is not specified.
Main file syntax
The file main.php is responsible for extending the main hack class. It should contain a class called hack_name, where name will be the name of the hack. The class must inherit from thehack. For example:
class hack_proxy extends thehack { … }
Do not override the built-in class constructor and destructor, they are responsible for the work of internal functions. Use init as a constructor, stop as a destructor. Both functions have no parameters. For example:
class hack_proxy extends thehack {
public function init() {
// Constructor functionality
}
public function stop() {
// Destructor functionality
}
}
If you don't plan to extend the hack's main class and use only built-in functions, you can remove the main.php file from the folder manually.