class Provision_Service_example_basic in Hosting 7.4
Same name and namespace in other branches
- 7.3 example/example_service/drush/Provision/Service/example/basic.php \Provision_Service_example_basic
A class containing the 'basic' implementation of the 'example' service.
This class is conditionally loaded when the "--example_service_type=basic" option is passed to provision-save commands run on servers.
The above flag is generated by the hosting counterpart of this class, which provides the front end to configure all these fields.
The responsibilities of this class include responding and saving any values that are passed to it, and also to override the portions of the public API for this service that are necessary.
Hierarchy
- class \Provision_Service_example extends \Provision_Service
Expanded class hierarchy of Provision_Service_example_basic
File
- example/
example_service/ drush/ Provision/ Service/ example/ basic.php, line 21 - A 'basic' implementation of the 'example' service type.
View source
class Provision_Service_example_basic extends Provision_Service_example {
/**
* Some common options handled upstream by the base service classes.
*/
/**
* This service needs to have a port specified for it.
*/
public $has_port = TRUE;
/**
* The default value for the port input.
*/
function default_port() {
return 12345;
}
/**
* This service needs to be restarted with a shell command.
*/
public $has_restart_cmd = TRUE;
/**
* The default value for the restart command input.
*/
function default_restart_cmd() {
return "/usr/bin/true";
}
/**
* Initialize this class, including option handling.
*/
function init_server() {
// REMEMBER TO CALL THE PARENT!
parent::init_server();
/**
* Register configuration classes for the create_config / delete_config methods.
*/
$this->configs['server'][] = 'Provision_Config_Example';
/**
* Setting and storing a value.
*
* You will most commonly use :
* $this->server->setProperty('example_field', 'default');
*
* This helper will check for an existing saved value, overridden
* by a command line option falling back to the default.
*
* This is the format used by everything you want configurable from
* the front end or command line.
*
* These values will be saved in ~/.drush/server_name.drush.alias.inc.
*/
$this->server
->setProperty('example_field', 'default');
/**
* Non configurable values.
*
* If you want to generate values for use in your code or templates,
* but don't want them to be overridden you would use the following format.
*
* $this->server->example_config_path = $this->server->config_path . '/example.d'
*
* This will mean the value will change if you change the config path, but
* you dont need to pass the right input to your command to get there,
* and it's impossible to change the values.
*/
$this->server->example_config_path = $this->server->config_path . '/example.d';
}
/**
* Pass additional values to the config file templates.
*
* Even though the $server variable will be available in your template files,
* you may wish to pass additional calculated values to your template files.
*
* Consider this something like the hook_preprocess stuff in drupal.
*/
function config_data($config = null, $class = null) {
// This format of calling the parent is very important!
$data = parent::config_data($config, $class);
/**
* This value will become available as $example_current_time
* in all the config files generated by this service.
*
* You could also choose to only conditionally pass values based on
* the parameters.
*/
$data['example_current_time'] = date(DATE_COOKIE, time());
return $data;
}
/**
* Implementation of service verify.
*/
function verify() {
parent::verify();
if ($this->context->type == 'server') {
// Create the configuration file directory.
provision_file()
->create_dir($this->server->example_config_path, dt("Example configuration"), 0700);
// Sync the directory to the remote server if needed.
$this
->sync($this->server->example_config_path);
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Provision_Service_example:: |
public | property | ||
Provision_Service_example:: |
function | Add a new platform specific configuration file. | ||
Provision_Service_example:: |
function | Create a new server specific configuration file. | ||
Provision_Service_example:: |
function | Generate a site specific configuration file | ||
Provision_Service_example:: |
function | Remove an existing platform configuration file. | ||
Provision_Service_example:: |
function | Remove an existing server specific configuration file | ||
Provision_Service_example:: |
function | Remove an existing site configuration file. | ||
Provision_Service_example:: |
function | Initialize the service along with the server object. | ||
Provision_Service_example:: |
function | Commonly something like running the restart_cmd or sending SIGHUP to a process. | ||
Provision_Service_example_basic:: |
public | property | This service needs to have a port specified for it. | |
Provision_Service_example_basic:: |
public | property | This service needs to be restarted with a shell command. | |
Provision_Service_example_basic:: |
function | Pass additional values to the config file templates. | ||
Provision_Service_example_basic:: |
function | The default value for the port input. | ||
Provision_Service_example_basic:: |
function | The default value for the restart command input. | ||
Provision_Service_example_basic:: |
function | Initialize this class, including option handling. | ||
Provision_Service_example_basic:: |
function |
Implementation of service verify. Overrides Provision_Service_example:: |