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

49 lines
1.2 KiB
PHP
Raw Permalink Normal View History

2018-02-17 17:18:58 +00:00
<?php
/**************************
* API ModuleFactory *
* 08-12-2016 *
***************************
* Designed & Developed by *
* xdrm-brackets *
***************************
* https://xdrm.io/ *
**************************/
namespace api\core;
class ModuleFactory{
/* INSTANCIE UN MODULE
*
* @module<String> Nom du module
* @arguments<Array> [OPTIONNEL] Arguments à passer au constructeur
*
* @return instance<Module> Instance du module en question
*
*/
public static function getModule($module, $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") )
2018-02-17 17:18:58 +00:00
return false;
/* (5) On récupère la classe */
$class_name = "\\api\\module${module_ns}Controller";
2018-02-17 17:18:58 +00:00
/* (6) On retourne une instance */
return new $class_name($arguments);
}
}