Some tips to create 'Solarified' classes - classes that adhere to the Solar standards and guidelines.
Always extend Solar_Base (never extend Solar).
The constructor should only receive as parameter a config array, like all other Solar constructors.
The constructor also should call parent::__construct($config);
Set a protected class property named $_Class_Full_Name to store the class configuration array. Their default values can be overridden on construction, and the precedence order is:
the config array passed to the constructor;
the values set in config file;
the default values set in the class.
Config values are accessible through the $this->_config['key'] property. In your config file, you can configure the class and those values will be used when you instantiate the class using Solar::factory():
$config['Class_Full_Name'] = array(
'key' => 'value',
);
* The config array is available trough $this→_config, so, inside the class:
* For exceptions you can use:
throw $this->_exception('ERR_CODE');
If you define ERR_CODE in the Locale file for the class (/[Class]/Locale/en_US.php) you will get a translated message string.
Also, $this->_exception('ERR_SOME_CODE') will look for /[Class]/Exception/SomeCode.php and throw it instead of a generic exception.
class Vendor_Controller_Front extends Solar_Base {
/**
*
* User-defined configuration array.
*
* @var array
*
*/
protected $_Vendor_Controller_Front = array(
);
/**
*
* Constructor.
*
* @param array $config User-provided configuration values.
*
*/
public function __construct($config)
{
// do the "real" construction
parent::__construct($config);
// continue with your constructor code
[...]
}
}