Московский РИТ++ в этом году будет первой конференцией, где я появлюсь с докладом. Тема — «Yii 2.0: обзор».
Конференция пройдёт 14 и 15 апреля. Регистрироваться здесь.
Видео, как обычно, не обещаю, но если будет — выложу.
31 марта 2014
Московский РИТ++ в этом году будет первой конференцией, где я появлюсь с докладом. Тема — «Yii 2.0: обзор».
Конференция пройдёт 14 и 15 апреля. Регистрироваться здесь.
Видео, как обычно, не обещаю, но если будет — выложу.
28 марта 2014
Помогал недавно с очень странной проблемой. На сервере были nginx, php-fpm и Yii. Всё работало нормально, но при попытке убрать index.php
из URL через showScriptName=false
показывалась исключительно главная страница. То есть роутинг вообще не происходил.
Путём долгого совместного копания в настройках сервера, сравнения с рабочими конфигурациями и гугления успешно забытое решение проблемы вновь нашлось. А именно, в php.ini
должна присутствовать строчка cgi.fix_pathinfo=0
.
12 января 2014
Yii2 перешёл с PSR-0 на недавно принятый PSR-4, благодаря чему из загрузчика классов удалось выкинуть кучу кода, теоретически сделав его быстрее (не замеряли). Также немного уменьшилась вложенность директорий официальных пакетов, что, хоть и не имеет большого значения, делает структуру чуть более простой.
Если вы уже использовали Yii2 через Composer:
composer self-update
.index.php
, index-test.php
и yii
. Там нужно убрать один уровень /../
..gitignore
из vendor
и composer.lock
, делаем заново composer install --prefer-dist
.Ещё одна приятная штука, расширения теперь можно делать по-человечески, складывая классы прямо в корневую директорию репозитория.
8 января 2014
В Active Record Yii2 вернулся JOIN
. Внутри всё значительно проще, чем было в Yii 1.1, но возможностей сильно больше.
Сразу скажу, что поддержка noSQL никуда не делась. Более того, можно в одном «запросе» выбрать JOIN-ом из нескольких SQL-таблиц, а часть связанных данных забрать, например, из MongoDB.
Отличный пример привёл ORey на англоязычном форуме:
// Выбираем MyModel с relation1 и relation2. // Все три забираем запросом с JOIN. $query = MyModel::find() ->joinWith(['relation1', 'relation2']); $countQuery = clone $query; $pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize' => 15]); $items = $query ->orderBy($sort->orders) ->offset($pages->offset) ->limit($pages->limit) // Забираем дополнительно relation3 и relation4. // Фильтровать по ним нам не нужно, так что будут // запросы вида WHERE ID IN (1,2,3,4) или аналоги // для noSQL. ->with(['relation3', 'relation4']) ->all();
7 января 2014
В почту прилетел вопрос «какого такого yii2-basic весит 180 мегабайт». Вопрос хороший. Разберём и попробуем разобраться, что же с этим всем делать, если размер критичен.
Итак, 155 мегабайт занимают данные git, которые забираются при установке из composer без флага --prefer-dist
(добавил его в readme). Осталось 25 мегабайт, что тоже немало.
Из них:
Yii + обязательные зависимости | 4,9 мб |
---|---|
debug-панель и gii | 235 кб |
Twitter Bootstrap | 4,5 мб |
Swiftmailer | 6,2 мб |
Codeception и зависимости | 8,6 мб |
Если нам не нужны какие-то пакеты, правим composer.json
и удаляем оттуда ненужные нам пакеты (секции require
и require-dev
). Удаляем composer.lock
и запускаем composer install --prefer-dist
.
Например, если нам не интересно автоматизированное тестирование, путём удаления из зависимостей Codeception получаем 16 мегабайт вместе с зависимостями и самим basic-шаблоном. При этом приложение остаётся полностью рабочим.
Если в приложении не нужна работа с почтой и Twitter Bootstrap получим 5,3 мегабайта.
UPD: доступен минимальный шаблон приложения без тяжёлых компонентов.
31 декабря 2013
Новый год уже очень скоро, так что заранее поздравляю всех читателей с окончанием 2013. Пришла пора вспомнить, что же было в нём интересного и подумать, что бы хотелось сделать в следующем 2014.
23 декабря 2013
Довольно много времени прошло с последнего раза как я писал про реализацию PHP в исполнении Facebook. С того времени многое поменялось.
В планах у команды HHVM на 2014 ещё большее ускорение виртуальной машины и полная совместимость с оригинальным PHP. Настрой серьёзный. В начале месяца Josh Waltzman из команды HHVM связывался с членами php-fig, в том числе и со мной. В планах ещё много дополняющих PHP вкусняшек: строгая типизация, коллекции, быстрый статический анализ. Жаль, что поддержки Windows в планах пока нет по техническим причинам. Это прилично сократит аудиторию...
Если в 2012 HHVM был годен только на использование внутри Facebook, то под конец 2013 перспективы его использования для своих проектов выглядят вполне реальными.
21 декабря 2013
У издательства PACKT до третьего января включительно приличные скидки на книги. Не исключение и моя англоязычная книга рецептов, которую сейчас можно заполучить всего за €3.65 вместо €20.99.
2 декабря 2013
Вышла первая альфа версия Yii 2. Скачать в виде архива её можно с официального сайта. Там же приведены инструкции по установке через Composer.
Yii 2 является полностью переделанной версией одного из самых популярных PHP-фреймворков. В новой версии унаследован общий дух первой версии, а именно стремление к простоте, скорости и расширяемости. В Yii 2 применяются многие возможности PHP 5.4. Фреймворк следует лучшим практикам современной веб-разработки.
Полное описание возможностей вы можете найти в полном руководстве и, в особенности в разделе с отличиями от версии 1.1.
Выпуск альфы является важным событием в разработке Yii 2 и означает, что код достиг определённой степени стабильности. Если вы только начинаете изучать Yii или у ваш проект не ограничен жёсткими временными рамками, можно попробовать новую версию. Не используйте Yii 2 в боевых проектах так как команда фреймворка всё ещё может внести значительные изменения без каких-либо предварительных уведомлений.
В течение двух лет было получено огромное количество кода от сообщества. Спасибо вам, что сделали этот релиз возможным.
17 ноября 2013
Не первый раз спрашивают как убрать дубликаты URL в приложении на Yii при использовании красивых URL и showScriptName = false
. Yii при включении данной опции генерирует все URL как надо, но позволяет обращаться к страницам и так и так:
http://example.com/blog/tag/Yii
http://example.com/index.php/blog/tag/Yii
На самом деле никакой проблемы в этом нет потому как ни одной ссылки на второй тип URL не будет и он, соответственно, не проиндексируется. Но так как вопросы поступают и SEO-шники настаивают, вот ответ в виде gist.
Сохраняем в виде protected/components/DuplicateFilter.php
, прописываем в метод filters
контроллеров и забываем о проблеме.