По случаю завершения работ над текстом книги запустил посвящённый ей сайт, на котором будут собираться описки и отзывы, а также, после печати книги, будут выложены код и, возможно, бесплатная глава.
Все заметки с тегом «yii»
-
YiiCookbook.org
25 июня 2011
-
Порядок регистрации автозагрузчиков классов в Yii
14 июня 2011
Вплоть до версии 1.1.7 можно было регистрировать автозагрузчики классов только в одном порядке. Перед родным автозагрузчиком:
Kohana Zend Framework Yii
В итоге при загрузке родных классов срабатывал сначала автозагрузчик Kohana, затем Zend Framework и только потом родной. И происходило это для каждого класса. С версии 1.1.8 этого можно избежать, поставив сторонние загрузчики после Yii:
Yii Zend Framework Kohana
Достаточно добавить всего один параметр:
Yii::app()->registerAutoloader(array('EZendAutoloader', 'load'), true); Yii::app()->registerAutoloader(array('EKohanaAutoloader', 'load'), true);
Реализация:
-
DevConf 2011, впечатления
6 июня 2011
Вчера вернулся с DevConf, где читал доклад про Yii и процесс его разработки. В общем доклад был похож на одноимённый с CodeFest, но включал себя багфиксы и раскрывал мысль несколько лучше. На вопрос «во что может превратиться Yii, если его разработчики станут компанией» я чётко ответил «в Битрикс», чем, сдаётся мне, поверг окружающих в лёгкий в шок. На самом деле оговорился :) Вопросы были, кстати, очень хорошие и правильные. Спасибо задававшим их людям.
-
Свои классы для правил роутера Yii
24 мая 2011
В следующей версии Yii появится возможность использовать свой класс для конкретного правила роутера:
array( // стандартное правило CUrlRule '<action:(login|logout)>' => 'site/<action>', // свой класс array( 'class' => 'application.components.MyUrlRule', 'connectionID' => 'db', ), )
Это позволит, например, с лёгкостью реализовать такую штуку, как наличие потенциально конфликтующих URL:
/about /contact /my-cool-blog-post /my-cool-static-page
Код уже в транке, если есть желание или необходимость — можете опробовать. Замечания и предложения приветствуются.
-
Yii::t и исходный язык для сообщений
16 мая 2011
При выборе исходного языка для сообщений, а именно того, который используется в
Yii::t('app', 'message')
, стоит задуматься о будущем.Выбрав Русский вы изначально усложняете себе жизнь: над переводами смогут работать только те, кто знает Русский. С Английским дела обстоят намного лучше: вторым языком его изучают почти во всём мире.
-
Yii и PHP 5.3
14 мая 2011
В Yii, при наличии PHP 5.3, можно использовать анонимные функции в качестве callback-а. Например, вот так могут выглядеть обработчики событий:
Yii::app()->onBeginRequest = function($event){ // … };
Более интересный пример —
CGridView
:$this->widget('zii.widgets.grid.CGridView',array( 'dataProvider'=>$dataProvider, 'columns'=>array( 'title', array ( 'name'=>'created_on', 'value'=> function($data){ return date("M j, Y", $data->created_on); }, ), array( 'class'=>'CButtonColumn', ), ), ));
-
Yii 1.1 Application Development Cookbook
10 мая 2011
Сегодня была официально анонсирована вторая книга про PHP-фреймворк Yii, так что я, наконец, могу немного про неё рассказать.
- Издательство: Packt Publishing.
- Язык: Английский.
- 13 глав и ~300 страниц.
- Планируемая дата появления финальной версии в продаже: Сентябрь 2011.
Оглавление:
- Under the Hood
- Router, Controller, and Views
- AJAX and jQuery
- Working with Forms
- Testing Your Application
- Database, Active Record, and Model Tricks
- Using Zii Components
- Extending Yii
- Error Handling, Debugging, and Logging
- Security
- Performance Tuning
- Using External Code
- Deployment
Официальный анонс и возможность получить предварительные версии первых шести глав
Это моя первая книга, так что с тем, как на самом деле писать я был не знаком. Сначала пытался сделать сразу идеально: на написание первых глав уходило очень много времени и сил, а вот результат всё-равно с первого раза не выходил желаемым. Ближе к 8—9 главе я осознал, что писать надо всё, что придёт в голову. Даже, если оно кажется не совсем тем, что должно оказаться в книге. Уже после того, как все планируемые моменты описаны, начинается процесс перечитывания и правки. Получается быстрее и лучше.
-
Yii: читаем пустые значения как null
7 мая 2011
Для того, чтобы Yii читал пустые значения как
null
, а не как пустую строку достаточно добавить один параметр в конфигурацию компонентаdb
:'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=test', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'nullConversion' => PDO::NULL_EMPTY_STRING, ),
-
Визуализации различных алгоритмов и структур
3 мая 2011
Как-то я давал ссылки на визуализации алгоритмов сортировки: картинками и на canvas.
В этот раз на глаза попалась довольно крупная подборка визуализаций на canvas, включающая в себя структуры, индексы, сортировки, кучи и графы.
Кстати, RBAC в Yii работает примерно так, за исключением того, что у RBAC граф ациклический.
-
Yii: всегда учитывайте неудачный save модели
2 мая 2011
Те, кто раньше не работал с Yii, на первых порах часто совершают очень нехорошую ошибку:
$model = new Post(); if(!empty($_POST['Post'])) { $model->attributes = $_POST['Post']; $model->save(); $this->redirect(array()); } $this->render('form', array( 'model' => $model, ));
Вот такой, казалось бы, простой код убить может немало нервов. Дело в том, что
save
запросто может не сработать, если не выполнится правило валидации. А т.к. мы этого не проверили, произойдёт редирект без каких-либо признаков ошибки.