21 и 22 мая пройдёт конференция Highload++ Junior. Задумка её очень интересная — рассказать не очень подготовленным слушателям о том, как справиться с нагрузками. То есть от и до. Я буду рассказывать про горизонтальное масштабирование PHP приложений и всё, что с этим связано.
- 
	Highload++ Junior7 мая 2015 10 комментариев
- 
	Yii 2.0 HP Fortify WebInspect SQL Injection: Blind10 апреля 2015 7 комментариевЗнакомые попросили проверить отчёт сканирования приложения Yii 2.0 на безопасность. Среди прочего HP Fortify WebInspect нашёл "SQL Injection: Blind" по URL: http://example.com/post/view?id=10%27%09and%091%09%3d%09if(5%3d5%2c%09sleep(200)%2c%090)%09and%09%271%27%3d%271 что расшифровывается как `10' and 1 = if(5=5, sleep(2000), 0) and '1'='1` То есть классически закрыли кавычку и т.д. Сделал тестовое приложение, запустил, получил страницу с постом с id = 10. То есть сканер среагировал на то, что нет ошибки или 404. Возможно, что SQL injection прошёл успешно. Полез в код, там ничего особенного: public function actionView($id) { $model = News::findOne($id); if (!$model) { throw new HttpException(404); } return $this->render('index', ['model' => $model]); } Полез глубже и убедился, что параметр не вставляется в SQL. Используется prepared statement, всё как положено. Задумался. Выполнил в консольке MySQL вот такое: select * from post WHERE id = '10lalalallala'; Получил запись с id = 10 и вспомнил, что MySQL приводит строки к int-у почти как PHP. То есть, что бы мы не вставили после 10, MySQL переварит и не поперхнётся. В итоге: - С Yii всё хорошо.
- HP Fortify нашёл то, чего нет, и пометил как критическое.
 
- 
	Видео с лекции по архитектуре Yii 2 от Павла Климова3 апреля 2015 16 комментариевПавел Климов, член основной команды разработчиков Yii, провёл лекцию по архитектуре Yii 2. Zfort Group выложили видео: 
- 
	Yii 2 собирается разделить репозиторий21 марта 2015 30 комментариевДля ускорения процесса релизов и того, чтобы придать официальным расширениям большую независимость мы думаем разделить расширения и шаблоны приложений на отдельные проекты GitHub. Ниже приведён предварительный план. Прежде чем что-либо менять мы хотели бы услышать ваше мнение и возможные предложения. Спасибо! UPD: отклик был положительный, разделили. 
- 
	Слайды с Dump 201521 марта 2015 1 комментарийDump прошёл отлично. Отличный уровень организации, классные стенды, интересные доклады. На этот раз я рассказывал про HHVM, а не про Yii. Прошло хорошо. 
- 
	yii2-shop, код с мастер класса в Екатеринбурге10 марта 2015 26 комментариевНемного привёл в порядок и выложил код с мастер класса в Екатеринбурге. В нём отражена попытка создать витрину магазина на основе шаблона advanced. 
- 
	HTTP/23 марта 2015 13 комментариев17 февраля 2015 вторая версия HTTP стала кандидатом на стандарт и уже поддерживается в Chrome ( --enable-spdy4), Firefox, IE 11.Изменения, по сравнению с 1.1, значительные и серьёзно повлияют на веб-разработку в целом. HTTP/2 основан на SPDY. То есть используется одно TCP соединение для передачи в обе стороны нескольких запросов-ответов. Передаваемое при этом, включая заголовки, представляется в сжатом бинарном виде. В дополнение сервер может заранее отсылать не связанные с открытой страницей ресурсы в кэш браузера. То есть такие техники как спрайты, сжатие и сборка CSS/JS в один файл, отдельный домен без cookie для ресурсов, несколько доменов для ресурсов, становятся не нужны и даже вредны. Правильно будет отдавать ресурсы мелкими порциями только когда они реально нужны. То есть чтобы для каждой отдельно взятой страницы количество загружаемых ресурсов было минимальным. 
- 
	Yii 2.0.32 марта 2015 4 комментарияТочно в срок вышел релиз PHP фреймворка Yii версии 2.0.3. В данную версию вошли около 50 улучшений и исправлений. Подробнее можно почитать в анонсе на хабре. 
- 
	Как поставить расширение на Yii 2.0 без Composer24 февраля 2015 22 комментарияНе первый раз спрашивают, как поставить расширение Yii 2.0 без Composer. Отвечаю. Ставить будем yii2-imperavi-widget. - Идём в https://github.com/vova07/yii2-imperavi-widget/releases, забираем архив.
- Смотрим его composer.json.
- Там у нас есть секция autoload, в ней упоминание PSR-4 и vova07/imperavi.
- Распаковываем файлы в vendor/vova07/imperavi.
- В vendor/composer/autoload_psr4.phpдобавляем:
 'vova07\\imperavi\\' => array($vendorDir . '/vova07/imperavi/src'), - В vendor/yiisoft/extensions.phpдобавляем:
 'vova07/imperavi' => array ( 'name' => 'vova07/imperavi', 'version' => '2', 'alias' => array ( '@vova07/imperavi' => $vendorDir . '/vova07/imperavi/src', ), ), Всё это делает за вас Composer. Лучше изучите его и не теряйте время. 
- 
	Буду на Dump 2015 в Екатеринбурге23 февраля 2015 4 комментария20 марта 2015 буду в Екатеринбурге на конференции Dump. Расскажу в секции «serverside light» про HHVM: зачем он Facebook, как он развивался, как устроен, можно ли использовать и насколько безболезненно. Также упомяну про HACK, phpng и другие занятные штуки. Вообще программа интересная, должно быть круто. 


