Разработчики Sabayon Linux планируют выпустить версию 5.0 через 2 недели
Wolfden в своём блоге написал о начале тестирования второй беты Sabayon 5.0.
Он надеется выпустить финальную версию Sabayon 5.0 через две недели, однако точной даты никто не знает.
Создаём расширяемую структуру на Yii Framework
Хочу предложить Вашему вниманию концепт расширяемой структуры приложения на Yii Framework. Я уже писал как сделать свои Actions на Yii.
Сегодня же речь пойдёт о написании стандартных экшенов для контроллеров и их расширения.
Предположим, в приложении у нас все контроллеры наследуются от класса dotPlantFrontMainController.
Нам необходимо, чтобы у всех контроллеров было действие Breadcrumb.
Для этого, в базовом контроллере dotPlantFrontMainController переопределяем функцию actions() следующим образом:
public function actions() { return array( 'breadcrumb' => 'application.extensions.actionBreadcrumb', ); } |
Если в унаследованном контроллере(скажем News) мы используем экшены из других файлов, то нам необходимо также переопределить функцию примерно вот так:
public function actions() { // return external action classes, e.g.: return array_merge( parent::actions(), array( 'admin'=>'application.controllers.News.ActionAdmin', ) ); } |
Таким образом, в News будут экшены определенные в базовом классе dotPlantFrontMainController плюс ActionAdmin.
Переписать же actionBreadcrumb можно уже в теле самого News.
В итоге имеем легко расширяемую структуру. В самом же базовом классе массив actions можно автоматически генерировать в соответствии с установленными расширениями. Всё легко и просто 🙂
О Sabayon 4.2 и не только
Поставил я как то себе на домашний компьютер Sabayon 4.2 Gnome x86_64. Конечно хотелось бы скачать Sabayon 5, но его ещё нигде нет - одни слухи только. Первое впечатление о системе было замечательное.
Ну Gentoo как Gentoo, только ставится быстрее, не надо с хэндбуком сидеть. Есть встроенный менеджер пакетов entropy с графическим фронтэндом Sulfur. Из консоли всё ставится через equo install. emerge также работает.
Декодируем gzip страницу на PHP
Недавно при разработке одного сайта, столкнулся с проблемой декодирования на PHP полученной через curl страницы, сжатой в gzip.
Допустим у нас есть код, который делает запрос через php-CURL с возвращением заголовков:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); //curl_setopt ($ch, CURLOPT_VERBOSE, 2); // Отображать детальную информацию о соединении curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0'); //Прописываем User Agent, чтобы приняли за своего curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); // Возвращать результат curl_setopt ($ch, CURLOPT_HEADER, 1); // Наши заголовочки curl_setopt ($ch, CURLINFO_HEADER_OUT, 1); // Где то наткнулся на этот параметр, решил оставить curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30); $result = curl_exec($ch); |
В итоге получаем в $result нашу страницу с заголовками сервера. Проверим, закодированна ли она и дешифруем её, если нужно:
if (strstr($result,"Content-Encoding: gzip")) { $result = preg_replace("/(.*)Content\-Encoding: gzip\s+/isU","",$result); $result = gzinflate(substr($result, 13)); } |
Вот и всё. Если Вам нужно просто gzip контент расшифровать, то можно в substr заменить 13 на 10. (+3 из-за \n после заголовков).
The new look
Вот мой блог и переехал с Blogger на WordPress.
Дизайн пока временный. Скоро переделаю. Надеюсь, это не затянется 🙂