public function initCliEnvironment() { $showUsage = true; if (isset($_SERVER['argv']) && $_SERVER['argc'] >= 2) { $urlIni = Ini::parse(Registry::get('applicationPath') . '/configs/url.ini', true); Registry::set('urlIni', $urlIni); $inEnvironment = $urlIni->defaults->environment; $inLocale = $urlIni->defaults->locale; $inVersion = 'cli'; $inAction = array('type' => 'default', 'uri' => null); // default values Registry::set('environment', $inEnvironment); Registry::set('locale', $inLocale); Registry::set('version', $inVersion); // we use the requested section from the config.ini to load our config Config::init($inLocale, $inEnvironment, $inVersion); Registry::set('config', Config::getInstance()); // parse the variables from the .env file or environment $env = Env::init($inLocale, $inEnvironment, $inVersion); Registry::set('env', Env::getInstance()); // create the Settings Object Registry::set('settings', Settings::getInstance()); $arrParams = array(); $ac = 1; while ($ac < count($_SERVER['argv'])) { switch ($_SERVER['argv'][$ac]) { case '-e': case '--environment': $inEnvironment = $_SERVER['argv'][$ac + 1]; $ac += 2; break; case '-l': case '--locale': $inLocale = $_SERVER['argv'][$ac + 1]; $ac += 2; break; case '-v': case '--version': $inVersion = $_SERVER['argv'][$ac + 1]; $ac += 2; break; case '-a': case '--action': $inAction['uri'] = ltrim($_SERVER['argv'][$ac + 1], '/'); $ac += 2; $showUsage = false; break; case '-m': case '--make': $inAction['uri'] = ltrim($_SERVER['argv'][$ac + 1], '/'); $inAction['type'] = 'make'; $showUsage = false; $ac += 2; break; default: $ac += 2; break; } } } if (!$showUsage) { // on lit le config.ini à la section concernée par notre environnement $config = Ini::parse(Registry::get('applicationPath') . '/configs/config.ini', true, $inLocale . '-' . $inEnvironment . '-' . $inVersion); Registry::set('config', $config); // on assigne les variables d'environnement et de langue en registry Registry::set('environment', $inEnvironment); Registry::set('locale', $inLocale); Registry::set('version', $inVersion); return $inAction; } else { echo "Usage : module/controller/action"; echo "\nOr : module/controller/action -variable1 value1 -variable2 value2 -variable3 value3"; echo "\nOr : module/controller/action/variable1/value1/variable2/value2/variable3/value3"; exit(04); } }
public function __isset($key) { $env = Env::getInstance(); $config = Config::getInstance(); return isset($env->{$key}) || isset($config->{$key}); }