/** * Recursively removing expired cache files under a directory. * This method is mainly used by [[gc()]]. * @param string $path the directory under which expired cache files are removed. * @param bool $expiredOnly whether to only remove expired cache files. If false, all files * under `$path` will be removed. */ protected function gcRecursive($path, $expiredOnly) { if (($handle = opendir($path)) !== false) { while (($file = readdir($handle)) !== false) { if (strncmp($file, '.', 1) === 0) { continue; } $fullPath = $path . DIRECTORY_SEPARATOR . $file; if (is_dir($fullPath)) { $this->gcRecursive($fullPath, $expiredOnly); if (!$expiredOnly) { if (!@rmdir($fullPath)) {
* @param string $path the directory under which expired cache files are removed. * @param bool $expiredOnly whether to only remove expired cache files. If false, all files * under `$path` will be removed. */ protected function gcRecursive($path, $expiredOnly) { if (($handle = opendir($path)) !== false) { while (($file = readdir($handle)) !== false) { if (strncmp($file, '.', 1) === 0) { continue; } $fullPath = $path . DIRECTORY_SEPARATOR . $file; if (is_dir($fullPath)) {
while (($file = readdir($handle)) !== false) { if (strncmp($file, '.', 1) === 0) { continue; } $fullPath = $path . DIRECTORY_SEPARATOR . $file; if (is_dir($fullPath)) { $this->gcRecursive($fullPath, $expiredOnly); if (!$expiredOnly) { if (!@rmdir($fullPath)) { $error = error_get_last(); Yii::warning("Unable to remove directory '{$fullPath}': {$error['message']}", __METHOD__); } }
* @param bool $expiredOnly whether to removed expired cache files only. * If false, all cache files under [[cachePath]] will be removed. */ public function gc($force = false, $expiredOnly = true) { if ($force || random_int(0, 1000000) < $this->gcProbability) { $this->gcRecursive($this->cachePath, $expiredOnly); } } /** * Recursively removing expired cache files under a directory. * This method is mainly used by [[gc()]].
* Deletes all values from cache. * This is the implementation of the method declared in the parent class. * @return bool whether the flush operation was successful. */ protected function flushValues() { $this->gc(true, false); return true; } /** * Removes expired cache files.
* Deletes all values from cache. * Be careful of performing this operation if the cache is shared among multiple applications. * @return bool whether the flush operation was successful. */ public function flush() { return $this->flushValues(); } /** * Retrieves a value from cache with a specified key. * This method should be implemented by child classes to retrieve the data * from specific cache storage.
} return $breakingNews; } public function latestNews($limit = 6) { Yii::$app->cache->flush(); $cacheKey = 'latestNews' . $limit; $dependency = new DbDependency(['sql' => 'SELECT MAX(sno) AS max_datetime FROM news']); $latestNews = Yii::$app->cache->get($cacheKey); if ($latestNews === false) { $latestNews = static::find()
$nextNews = News::findOne($id + 1); $newsDetail->views = $newsDetail->views + 1; $newsDetail->save(false); $relatedNews = $news->relatedNews($newsDetail); $latestNews = $news->latestNews(11); return $this->render('newsdetails', [ "newsdetails" => $newsDetail, "latestNews" => $latestNews, "relatedNews" => $relatedNews, "previousNews" => $previousNews,
$args = $this->controller->bindActionParams($this, $params); Yii::debug('Running action: ' . get_class($this->controller) . '::' . $this->actionMethod . '()', __METHOD__); if (Yii::$app->requestedParams === null) { Yii::$app->requestedParams = $args; } return call_user_func_array([$this->controller, $this->actionMethod], $args); } }
} $result = null; if ($runAction && $this->beforeAction($action)) { // run the action $result = $action->runWithParams($params); $result = $this->afterAction($action, $result); // call afterAction on modules foreach ($modules as $module) { /* @var $module Module */
$parts = $this->createController($route); if (is_array($parts)) { /* @var $controller Controller */ list($controller, $actionID) = $parts; $oldController = Yii::$app->controller; Yii::$app->controller = $controller; $result = $controller->runAction($actionID, $params); if ($oldController !== null) { Yii::$app->controller = $oldController; } return $result; }
$params = $this->catchAll; unset($params[0]); } try { Yii::debug("Route requested: '$route'", __METHOD__); $this->requestedRoute = $route; $result = $this->runAction($route, $params); if ($result instanceof Response) { return $result; } $response = $this->getResponse(); if ($result !== null) {
{ try { $this->state = self::STATE_BEFORE_REQUEST; $this->trigger(self::EVENT_BEFORE_REQUEST); $this->state = self::STATE_HANDLING_REQUEST; $response = $this->handleRequest($this->getRequest()); $this->state = self::STATE_AFTER_REQUEST; $this->trigger(self::EVENT_AFTER_REQUEST); $this->state = self::STATE_SENDING_RESPONSE; $response->send();
require __DIR__ . '/../../common/config/main.php', require __DIR__ . '/../../common/config/main-local.php', require __DIR__ . '/../config/main.php', require __DIR__ . '/../config/main-local.php' ); (new yii\web\Application($config))->run();
$_GET = [ 'category' => 'music', 'slug' => 'spotify', 'id' => '177624', ];