/** * */ public function initialize() { // Get dependencies $dependencies = \z\boot()->dependencies; // Parse each dependency foreach ($dependencies as $dependency) { // List constants of dependency $files = \z\service('helper/file')->listFiles($dependency . '/Constants', 'php'); // Parse each file foreach ($files as $file) { // Execute the file require_once $file; } } }
/** * */ private function loadPreferences() { // Get the cache $cacheCode = 'preferences_' . \z\boot()->environment; $cache = \z\cache()->getCache($cacheCode); if ($cache !== false) { $this->_preferences = unserialize($cache); return; } // Define the number of passes $dependencies = \z\boot()->dependencies; $nbPasses = count($dependencies) - 1; // Perform n passes for ($i = 0; $i < $nbPasses; $i++) { foreach ($dependencies as $dependency) { // List preferences $paths = array_merge(\z\service('helper/file')->listFiles($dependency . '/Config/Preferences', 'json'), \z\service('helper/file')->listFiles($dependency . '/Config/Preferences/' . \z\boot()->environment, 'json')); // Parse each path foreach ($paths as $path) { // Build the preference code $parentPreferenceCode = strtolower(basename($path, '.json')); // Load preferences $preferences = \z\service('factory/json')->loadJson($path); // Store preferences foreach ($preferences as $preferenceCode => $preferenceValue) { // Build the new preference code $preferenceCode = $parentPreferenceCode . '/' . $preferenceCode; // Get the previous preference value $oldPreferenceValue = \z\pref($preferenceCode); // Is it an array? if (is_array($oldPreferenceValue) === true) { // Merge the old + the new $preferenceValue = array_merge($oldPreferenceValue, $preferenceValue); } // Set the preference \z\pref($preferenceCode, $preferenceValue); } } } // End of pass, remove the first extension array_shift($dependencies); } // Set the cache \z\cache()->setCache($cacheCode, serialize($this->_preferences)); }
/** * */ private function loadDefinitions() { // Get the cache $cacheCode = 'routes_' . \z\boot()->environment; $cache = \z\cache()->getCache($cacheCode); if ($cache !== false) { $this->_definitions = unserialize($cache); return; } // $dependencies = \z\boot()->dependencies; // foreach ($dependencies as $dependency) { // Find definitions $paths = \z\service('helper/file')->listFiles($dependency . '/Config/Routes', 'json', true); // For each definitions foreach ($paths as $path) { // Load definitions $rawDefinitions = file_get_contents($path); $definitions = json_decode($rawDefinitions, true); // Make sure definitions is an array if (is_array($definitions) === false) { continue; } // For each definition foreach ($definitions as &$definition) { // Make sure the definition is valid $definition = array_merge(['arguments' => [], 'verbs' => [], 'post' => [], 'pre' => []], $definition); // For each verb foreach ($definition['verbs'] as &$verb) { // Make sure the verb is valid $verb = array_merge(['action' => 'index', 'controller' => null], $verb); } } // Store definitions $this->_definitions = array_merge($this->_definitions, $definitions); } } // Set the cache \z\cache()->setCache($cacheCode, serialize($this->_definitions)); }
/** * */ private function loadConfig() { // Get the cache $cacheCode = 'events_' . \z\boot()->environment; $cache = \z\cache()->getCache($cacheCode); if ($cache !== false) { $this->_followers = unserialize($cache); return; } // Parse each dependency $dependencies = \z\boot()->dependencies; foreach ($dependencies as $dependency) { // $paths = \z\service('helper/file')->listFiles($dependency . '/Config/Events', 'php'); foreach ($paths as $path) { require_once $path; } } // Set the cache \z\cache()->setCache($cacheCode, serialize($this->_followers)); }
/** * */ private function loadDefinitions() { // Get the cache $cacheCode = 'services_' . \z\boot()->environment; $cache = \z\cache()->getCache($cacheCode); if ($cache !== false) { $this->_definitions = unserialize($cache); return; } // $dependencies = \z\boot()->dependencies; // foreach ($dependencies as $dependency) { // Find services $fileHelper = new \fbenard\Zero\Services\Helpers\FileHelper(); $paths = $fileHelper->listFiles($dependency . '/Config/Services', 'json'); // For each service foreach ($paths as $path) { // Load definitions $rawDefinitions = file_get_contents($path); $definitions = json_decode($rawDefinitions, true); // Register services $this->registerServices($definitions); } } // Set the cache \z\cache()->setCache($cacheCode, serialize($this->_definitions)); }