コード例 #1
0
ファイル: PostLoader.php プロジェクト: Alroniks/klimchuk.com
 public function loadList()
 {
     if (!($posts = Redis::zrevrange(Key::posts($this->language), 0, -1, 'WITHSCORES'))) {
         if (!file_exists(base_path("resources/blog/{$this->language}"))) {
             return null;
         }
         $files = (new Filesystem())->allFiles(base_path("resources/blog/{$this->language}"));
         $files = array_map(function ($file) {
             $filename = explode('__', pathinfo($file, PATHINFO_FILENAME));
             $date = count($filename) ? array_shift($filename) : '';
             $date = \DateTime::createFromFormat('Y-m-d', $date) ?: new \DateTime();
             $slug = array_shift($filename);
             return ['path' => $file->getRealPath(), 'slug' => $slug, 'published' => $date->setTime(9, 0, 0), 'extension' => pathinfo($file, PATHINFO_EXTENSION)];
         }, $files);
         $loaded = [];
         foreach ($files as $file) {
             if ($file['slug'] and $file['extension'] == 'md') {
                 $loaded[$file['slug']] = $file;
                 Redis::zadd(Key::posts($this->language), $file['published']->getTimestamp(), serialize($file));
             }
         }
         return $loaded;
     }
     return static::convert($posts);
 }
コード例 #2
0
ファイル: Post.php プロジェクト: Alroniks/klimchuk.com
 public function latest($latest = 4)
 {
     $posts = PostLoader::convert(Redis::zrevrange(Key::posts(), 0, $latest - 1, 'WITHSCORES'));
     foreach ($posts as $slug => &$post) {
         $post = $this->loader->load($slug);
     }
     return $posts;
 }
コード例 #3
0
ファイル: BlogRefresh.php プロジェクト: Alroniks/klimchuk.com
 /**
  * Function remove all redis data for specified language
  *
  * @param $language
  */
 public function clear($language)
 {
     if (Redis::del(Key::posts($language))) {
         $this->info('Remove all entries for key ' . Key::posts($language));
     }
     if (Redis::del(Key::tags($language))) {
         $this->info('Remove all entries for key ' . Key::tags($language));
     }
     foreach (Redis::keys(Key::post('*', $language)) as $key) {
         if (Redis::del($key)) {
             $this->info('Remove all entries for keys ' . $key);
         }
     }
 }