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

Заметки


DoItLive is a tool for live presentations in the terminal. It reads a file of shell commands and replays the commands in a fake terminal session as you type random characters.