87 lines
2.7 KiB
PHP
87 lines
2.7 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Central service which provides the glue and intelligence for all parts
|
|
*/
|
|
class Alternc_Diagnostic_Manager{
|
|
|
|
/**
|
|
* @var Alternc_Diagnost_Format_Abstract
|
|
*/
|
|
public $formatInstance;
|
|
|
|
/**
|
|
* @var Alternc_Diagnost_Directory
|
|
*/
|
|
public $directoryInstance;
|
|
|
|
/** @var string the Alternc version */
|
|
public $version;
|
|
|
|
/**
|
|
* Constructor with dependancy injection
|
|
*
|
|
* @param array $options
|
|
* @throws \Exception
|
|
*/
|
|
public function __construct($options) {
|
|
|
|
// Attempts to retrieve formatInstance
|
|
if (isset($options["formatInstance"]) && ! is_null($options["formatInstance"])) {
|
|
$this->formatInstance = $options["formatInstance"];
|
|
} else {
|
|
throw new \Exception("Missing parameter formatInstance");
|
|
}
|
|
|
|
// Attempts to retrieve directoryInstance
|
|
if (isset($options["directoryInstance"]) && ! is_null($options["directoryInstance"])) {
|
|
$this->directoryInstance = $options["directoryInstance"];
|
|
} else {
|
|
throw new \Exception("Missing parameter directoryInstance");
|
|
}
|
|
|
|
// Attempts to retrieve version
|
|
if (isset($options["version"]) && ! is_null($options["version"])) {
|
|
$this->version = $options["version"];
|
|
} else {
|
|
throw new \Exception("Missing parameter version");
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Controls the diagnostics creation
|
|
*
|
|
* @param Console_CommandLine_Result $options
|
|
* @throws \Exception
|
|
*/
|
|
function create(Console_CommandLine_Result $options){
|
|
|
|
$args = $options->args;
|
|
$options = $options->options;
|
|
$diagnosticData = new Alternc_Diagnostic_Data(Alternc_Diagnostic_Data::TYPE_ROOT);
|
|
|
|
$serviceList = explode(',',$options["services"]);
|
|
foreach ($serviceList as $service) {
|
|
$class_name = "Alternc_Diagnostic_Service_".trim(ucfirst($service));
|
|
if(!class_exists($class_name)){
|
|
throw new \Exception("Invalid service $service");
|
|
}
|
|
/** @var Alternc_Diagnostic_Service_Interface */
|
|
$serviceAgent = new $class_name( array("service" => $this) );
|
|
|
|
// Runs the service agent and store the results
|
|
$diagnosticData->addData($serviceAgent->name, $serviceAgent->run());
|
|
}
|
|
$this->formatInstance->setData($diagnosticData)->write();
|
|
|
|
}
|
|
|
|
function compare( $options ){}
|
|
function index( $options ){}
|
|
function show( $options ){}
|
|
function delete( $options ){}
|
|
|
|
|
|
}
|