MySQL → MySQL Query Cache
Оставляю себе в качестве шпаргалки.
Необходимые запросы к БД для проверки работоспособности и просмотра состояния дел.
1 2 3 | SHOW variables LIKE 'have_query_cache';
SHOW variables LIKE 'query%';
SHOW status LIKE 'Qcache%';
|
jQuery → Ajax
Не прошло и полгода, как технология ajax проникла в мою деятельность :) Здесь, в частности, она применилась к отправке комментариев (не без участия jQuery).
Лучше, конечно, поменьше слов и побольше кода, но читать дальше не советую, так как вряд-ли кто-то увидит здесь что-нибудь новое
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | jQuery(document).ready(function() {
jQuery('#submit').click(function() {
var dataForm = jQuery('#CommentForm').serialize();
jQuery.ajax({
url: '/index/addcomment',
data: dataForm,
type: 'POST',
success: function() {
jQuery('#comments').load('/topic.php #comments > *');
}
});
return false;
});
});
|
JavaScript → HTML5 и IE8
Долго сражался с этим долбанным ребусом. Если вкратце, то внешний вид одного сайта нормально отображался в IE8 и IE7, однако одна единственная страница перекашивалась в указанных браузерах. Средство разработчика, встроенное в IE показало, что на этой злосчастной странице такие элементы HTML5, как <footer>, <article> или <header> самостоятельно "закрывались", т.е. превращались в элементы вида <footer/>, <article/> и т.п. Причём на остальных страницах подобного поведения не наблюдалось.
Гугление привело на страницу с решением, позволяющем включить новые элементы HTML5 в Internet Explorer. Приведу здесь необходимый фрагмент:
1 2 3 | <!--[if lt IE 9]>
<script src="http://cdn.jsdelivr.net/html5shiv/3.7.2/html5shiv.min.js"></script>
<![endif]-->
|
Zend Framework → Аналог Url-хелпера из Zend_View
В своё время меня интересовал вопрос - как вызывать Url-хелпер из контроллера и внутри модели? И если в контроллере это можно было сделать просто, то внутри модели получал только фигу. Однако догадался заглянуть в код самого фреймворка (Zend Framework, если что) - там всё чёрным по белому написано.
Зачем мне вообще это понадобилось? А затем, что пути к страницам этого сайта определены через роуты и если мне завтра вздумается заменить адреса вида example.org/topic/xxx на example.org/shmopic/xxx, то придётся переписывать модели для получения RSS-фида и генерации sitemap.xml, что не есть хорошо.
Zend Framework → Использование Zend_Feed
Не претендую на лучшее решение, это скорее первый опыт общения с Zend_Feed вообще, но написать что-то надо. Хотя бы ради ссылки на спецификации RSS 2.0
Ну а теперь, собственно, реализация RSS-ленты. Поскольку я стараюсь придерживаться паттернов проектирования MVC, то запрос обрабатывается контроллером, а данные для ленты формируются в модели. Вид (View) нам не нужен, как таковой, потому в контроллере мы его выключаем.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php
public function feedAction()
{
//определяем тип ленты, RSS или Atom
$feedType = $this->_getParam('feed');
//выключаем View и Layout
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$topics = new Application_Model_DbTable_Topics();
//запрашиваем данные ленты из модели
$feedArray = $topics->getFeedData($feedType);
//Импортируем ленту с помощью Zend_Feed и выводим её
$feed = Zend_Feed::importArray($feedArray, $feedType);
$feed->send();
}
|
Zend Framework → Пощупал Zend_Cache
Заинтересовался компонентами Zend Framework, пользоваться которыми ещё не приходилось. Решил попробовать Zend_Cache. Собственно попробовал кеш на этом самом блоге, который родился и продолжает развиваться из моего тестового задания для приёма на работу.
Выбрал 3 не самых ресурсоёмких запроса, которые происходят при каждом обращении к IndexController-у. Это выборка из БД названий непустых категорий и тегов, в которых уже имеются записи, а также имён пользователей блога (я тут пока один).
PHP → Комментарии
Появилась возможность оставлять комментарии от зарегистрированный и незарегистрированных пользователей.
Теперь необходимо прикрутить сюда AJAX.
PHP → Регулярные выражения
Если не разобрался на все сто процентов, то использовал, по крайней мере, кое какие штуки из сабжа (чтобы подсветить ссылки в этом самом блоге). Оставляю полезные ссылки по теме на всякий случай.