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 ){}
 | |
|     
 | |
|     
 | |
| }
 |