/** * Generates an MVC mapping and returns it's * logical structure as array. * * @return array */ public static function generateMVCProviders() { // Append all library/Direct classes to the $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/direct.ini', APPLICATION_ENV); // Get the modules $modules = Extzf_ExtDirect_ProviderGenerator::getModules(); // Walk modules, build API $apis = array(); foreach ($modules as $moduleName => $controllerNames) { // Generate module provider API $apis[] = Extzf_ExtDirect_ProviderGenerator::generateModuleProvider($config->direct->namespace, $moduleName, $controllerNames); // Dynamically add the provider $addProviderStmt = "Ext.Direct.addProvider(". $config->direct->namespace .".". $moduleName .".REMOTING_API);"; $apis[] = $addProviderStmt; } return $apis; }
require_once BASE_PATH . '/thirdparty/ExtDirect/CacheProvider.php'; require_once BASE_PATH . '/library/Extzf/Controller.php'; require_once BASE_PATH . '/library/Extzf/ExtDirect/ProviderGenerator.php'; require_once BASE_PATH . '/library/Extzf/ExtDirect/API.php'; if(false === file_exists(APPLICATION_PATH . '/data')) { mkdir(APPLICATION_PATH . '/data'); } // --- Regenerate /application/public/javascripts/Provider.js $providers = Extzf_ExtDirect_ProviderGenerator::generateMVCProviders(); $rawCode = Extzf_ExtDirect_ProviderGenerator::providersToJson($providers); // Create the provider directories if not present. $provider_path = BASE_PATH . '/release/public/javascript/'; if(false === file_exists($provider_path)) { mkdir($provider_path, 0755,true); } @file_put_contents($provider_path . "Provider.js", $rawCode); if(file_exists($provider_path. "Provider.js")) { echo "Ext JS direct provider generator:\n"; echo "Generated new Ext JS direct provider {$provider_path}Provider.js - Controllers: \n"; echo implode(",\n", array_map(create_function('$a','return implode(", ",$a);'), Extzf_ExtDirect_ProviderGenerator::getModules())); }