ptut-vhost/build/api/core/ModuleFactory.php

49 lines
1.2 KiB
PHP
Executable File

<?php
/**************************
* API ModuleFactory *
* 08-12-2016 *
***************************
* Designed & Developed by *
* xdrm-brackets *
***************************
* https://xdrm.io/ *
**************************/
namespace api\core;
class ModuleFactory{
/** INSTANCIE UN MODULE
*
* @param String $module Nom du module
* @param array $arguments [OPTIONNEL] Arguments à passer au constructeur
*
* @return object|false Instance du module en question
*
*/
public static function getModule(String $module, array $arguments=[]){
/* (1) On gère les arguments */
$arguments = is_array($arguments) ? $arguments : [];
/* (2) Exception: URI Racine */
if( $module == '/' )
$module = '/root';
/* (3) On transforme @module en namespace */
$module_ns = str_replace('/', '\\', $module);
/* (4) On vérifie que la classe existe */
if( !file_exists(__BUILD__."/api/module${module}Controller.php") )
return false;
/* (5) On récupère la classe */
$class_name = "\\api\\module${module_ns}Controller";
/* (6) On retourne une instance */
return new $class_name($arguments);
}
}