Записался в подкасте «Пятиминутка PHP». Получилось не 5 минут, а пол часа. Говорили про php-fig, Yii и другие интересные штуки.
Все заметки с тегом «Yii»
-
Пятиминутка PHP, выпуск 9
30 июня 2015
-
Перестаньте использовать mcrypt
13 мая 2015
Сегодня в очередной раз всплыла статья об распространённых ошибках при реализации шифрования. Сама по себе она ничего так, но местами учит плохому. А именно, использовать mcrypt.
Почему его не стоит использовать
mcrypt не обновлялся более десяти лет и не планирует. Авторы его забросили. В нём есть серьёзные недоработки.
И что делать?
Мы в Yii от него ушли в сторону OpenSSL, чего и вам советую. Реализовал переход, в основном, Tom Worster. У него есть серия интересных постов на тему.
-
Yii 2.0.4
11 мая 2015
Релизнули. Написал анонс на хабр. Он не очень подробный, так что буду рад раскрытию CHANGELOG с примерами там в комментариях.
-
Yii 2.0 HP Fortify WebInspect SQL Injection: Blind
10 апреля 2015
Знакомые попросили проверить отчёт сканирования приложения 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
Павел Климов, член основной команды разработчиков Yii, провёл лекцию по архитектуре Yii 2. Zfort Group выложили видео:
-
Yii 2 собирается разделить репозиторий
21 марта 2015
Для ускорения процесса релизов и того, чтобы придать официальным расширениям большую независимость мы думаем разделить расширения и шаблоны приложений на отдельные проекты GitHub. Ниже приведён предварительный план. Прежде чем что-либо менять мы хотели бы услышать ваше мнение и возможные предложения. Спасибо!
UPD: отклик был положительный, разделили.
-
yii2-shop, код с мастер класса в Екатеринбурге
10 марта 2015
Немного привёл в порядок и выложил код с мастер класса в Екатеринбурге. В нём отражена попытка создать витрину магазина на основе шаблона advanced.
-
Yii 2.0.3
2 марта 2015
Точно в срок вышел релиз PHP фреймворка Yii версии 2.0.3. В данную версию вошли около 50 улучшений и исправлений.
Подробнее можно почитать в анонсе на хабре.
-
Как поставить расширение на Yii 2.0 без Composer
24 февраля 2015
Не первый раз спрашивают, как поставить расширение 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. Лучше изучите его и не теряйте время.
-
YiiGist - каталог расширений Yii
4 февраля 2015
До этого момента у Yii не было нормального каталога пакетов. Команда Yii занимается новой версией сайта, но пока не всё готово и релизить нельзя. Официально мы рекомендовали использовать packagist.org и искать там "yii". Это более-менее работало, но было не совсем удобно. Думаю, поэтому сообщество запустило неофициальный проект YiiGist.
YiiGist позволяет зайти используя GitHub и пометить один или несколько репозиториев как пакет Yii 1 или Yii 2. Все помеченные пакеты доступны в каталоге. Есть поиск, информация вытягивается как из GitHub, так и из packagist.
Как вам?