$jsonString = Zend_Json::encode($data); echo $jsonString; exit; } // check rate limit if ($registry->configuration->api->params->lifetime == strtolower('minute')) { $timeKey = date("i"); $ttl = 60; } else { // h - 12 hrs ; H - 24 hrs $timeKey = date("H"); $ttl = 3600; } $cacheRateKey = $registry->configuration->cache->namespace . '_' . $registry->configuration->api->params->prefix . '_' . $registry->arguments['key'] . '_' . $timeKey; // using apcu directly // for more info about the caching layer see http://www.dotkernel.com/tag/dotkernel-caching/ $rate = (int) apc_fetch($cacheRateKey); $rateLimit = $registry->configuration->api->params->rate_limit; if ($rate > $rateLimit) { Api_Model_Header::setHeaderByCode(403); exit; } apc_store($cacheRateKey, 1 + $rate, $ttl); // Create connection to database, as singleton , and store it in registry $db = Zend_Db::factory('Pdo_Mysql', $config->database->params->toArray()); $registry->database = $db; // Load specific configuration settings from database, and store it in registry $settings = Dot_Settings::getSettings(); $registry->settings = $settings; $registry->option = array(); include 'Controller.php';
/** * Initialize the global variables * @access public * @static * @param int $startTime * @return bool $success */ public static function initialize($startTime) { // Create registry object, as read-only object to store there config, settings, and database $registry = self::_initializeRegistry(); // mark the start time $registry->startTime = $startTime; //Load configuration settings from application.ini file and store it in registry $config = new Zend_Config_Ini(CONFIGURATION_PATH . '/application.ini', APPLICATION_ENV); $registry->configuration = $config; //start the cache Dot_Cache::loadCache(); //Load routes(modules, controllers, actions) settings from router.xml file and store it in registry $registry->router = self::_loadRouter(); // load the plugin configuration $registry->pluginConfiguration = self::_loadPluginConfiguration(); //Load configuration settings from application.ini file and store it in registry $config = new Zend_Config_Ini(CONFIGURATION_PATH . '/application.ini', APPLICATION_ENV); $registry->configuration = $config; // Create connection to database, as singleton , and store it in registry $db = Zend_Db::factory('Pdo_Mysql', $config->database->params->toArray()); $registry->database = $db; //Load specific configuration settings from database, and store it in registry $settings = Dot_Settings::getSettings(); $registry->settings = $settings; //Set PHP configuration settings from application.ini file Dot_Settings::setPhpSettings($config->phpSettings->toArray()); // Extract the route from the URI Dot_Route::setRoute(); // initialize seo options $registry->seo = Dot_Route::getOption(); // initialize default options for dots that may be overwritten $option = Dot_Settings::getOptionVariables($registry->requestModule, 'default'); $registry->option = $option; return true; }