Yii2 дайджест новостей разработки #6 Март'14 > stdout.in Ievgen Kuzminov IT blog

Yii2 дайджест новостей разработки #6 Март'14

04 марта 2014 г., 11:15:26

После длительного перерыва (к сожалению, обстановка в моей стране пока не располагает к продуктивной работе), я рад представить следующий дайджест.
В любом случае разработка Yii2 продвигается к Бета релизу, за поледний месяц "прилетело" всего пара "ломающих" критических изменений ;)
Ах да - это первая русская версия дайджета, стоит отметить! Английская версия (для любителей) по ссылке вверху.

Хотите быстро попробовать работу с Yii2 фрэймворком ?

Так пробуйте !
Yii2 Advanced app в Vagrant с Puppet

Расширения для Yii2

Полезные заметки по работе с Yii2

  • [Упс, у меня `"unexpected '[', expecting ')' in ../vendor/yiisoft/yii2/yii/Yii.php on line 25"`](https://github.com/yiisoft/yii2/issues/2582) > Просто используй PHP 5.4 :)

  • Один Url Rule - чтобы отлавливать все запросы > '<action:\w+><data:(.*)?>' => 'site/<action>'

  • Как быть с "use Yii;" в файле представления > cebe : use Yii; для импорта класса Yii в текущее пространство имён. Т.к. файл представления уже в корневом пространстве имён, где также обитает класс Yii то и импортировать его не надо. Отсюда и ошибка.

  • Как добавить связь в модели "на лету" в Yii2 ? > qiang : Итак имя связи динамически зависит от конфигурации так ? Надо сделать небольшой финт ушами для такой динамической конфигурации. Переопределить Behavior::hasMethod() и возвращать "true" для getRelationName. Переопределить Behavior::__call() и реализовать getRelationName.

  • Добавление скоупа по-умолчанию AR > Да в Yii2 этот функционал "выбросили", т.к. с ним было много проблем. Но дефолтный скоуп можно эмулировать примерно так ~~~{.php} class Post extends ActiveRecord { public static function createQuery($config = []) { $config['modelClass'] = get_called_class(); return (new PostQuery($config))->active(); } }

class PostQuery extends ActiveQuery { public function active() { $this->andWhere(['status' => Post::STATUS_PUBLISHED]); return $this; } } ~~~

comments powered by Disqus
Евгений
Кузьминов "iJackUA"
Web Team Lead
в MobiDev (Харьков, Украина)
Code in Ruby and Elixir, but still love PHP. Explore ES6 and Vue.js. Explore databases, use Ubuntu and MacOS, think about IT people and management

Заметки