Переезжать ли Livestreet-у на другой фреймворк?
Какой фреймворк выбрать, можно решать отдельно. Результаты голосования не обязательно предопределят судьбу livestreet.
/** * Бекенд xcache */ class ModuleCache_EntityBackendXcache extends ModuleCache_EntityBackend { /** * Проверяет доступность использования текущего бекенда * * @return mixed */ public function IsAvailable() { if (extension_loaded('xcache')) { return true; } return 'The xcache extension must be loaded for using this backend!'; } /** * Проверяет доступность использование мульти-get запросов к кешу (указывать сразу несколько ключей) * * @return mixed */ public function IsAllowMultiGet() { return true; } /** * Инициализация бекенда * * @param array $aParams * * @return mixed */ public function Init($aParams=array()) { require_once(LS_DKCACHE_PATH.'Cache/Backend/TagEmuWrapper.php'); require_once(LS_DKCACHE_PATH.'Zend/Cache/Backend/Xcache.php'); $aConfig=Config::Get('xcache'); $oCahe = new Zend_Cache_Backend_Xcache(is_array($aConfig) ? $aConfig : array()); if (isset($aParams['stats_callback'])) { $this->oCacheBackend=new Dklab_Cache_Backend_TagEmuWrapper(new Dklab_Cache_Backend_Profiler($oCahe,$aParams['stats_callback'])); } else { $this->oCacheBackend=new Dklab_Cache_Backend_TagEmuWrapper($oCahe); } } /** * Получить значение из кеша * * @param string $sName Имя ключа * @return mixed|bool */ public function Get($sName) { return $this->oCacheBackend->load($sName); } /** * Записать значение в кеш * * @param mixed $mData Данные для хранения в кеше * @param string $sName Имя ключа * @param array $aTags Список тегов, для возможности удалять сразу несколько кешей по тегу * @param int|bool $iTimeLife Время жизни кеша в секундах * @return bool */ public function Set($mData,$sName,$aTags=array(),$iTimeLife=false) { return $this->oCacheBackend->save($mData,$sName,$aTags,$iTimeLife); } /** * Удаляет значение из кеша по ключу(имени) * * @param string $sName Имя ключа * @return bool */ public function Delete($sName) { return $this->oCacheBackend->remove($sName); } /** * Чистит кеши * * @param string $cMode Режим очистки кеша * @param array $aTags Список тегов, актуально для режима Zend_Cache::CLEANING_MODE_MATCHING_TAG * @return bool */ public function Clean($cMode=Zend_Cache::CLEANING_MODE_ALL,$aTags=array()) { return $this->oCacheBackend->clean($cMode,$aTags); } }
/classes/actions/[action]/Event[Name].class.php
, где [action]
— это название экшена, которому принадлежит евент, [Name]
— название внешнего обработчика евента.ActionBlog.class.php
:<?php class ActionBlog extends Action { public $oUserCurrent=null; public function Init() { $this->oUserCurrent=$this->User_GetUserCurrent(); $this->SetDefaultEvent('index'); } /** * Регистрируем евенты * */ protected function RegisterEvent() { /** * Регистрируем внешние обработчики евентов */ $this->RegisterEventExternal('Topic','ActionBlog_EventTopic'); $this->AddEvent('index','EventIndex'); $this->AddEventPreg('/^topic$/i','/^(\d+)\.html$/i','/^$/i','Topic::EventShowTopic'); $this->AddEventPreg('/^topic$/i','/^list$/i','/^$/i','Topic::EventList'); } protected function EventIndex() { /** * Устанавливаем шаблон для вывода */ $this->SetTemplateAction('index'); } } ?>