<rmcreative>

RSS

Все заметки с тегом «yii»

Можно уточнить:

  1. Порядок регистрации автозагрузчиков классов в 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);

    Реализация:

    10 комментариев
  2. DevConf 2011, впечатления

    6 июня 2011

    Вчера вернулся с DevConf, где читал доклад про Yii и процесс его разработки. В общем доклад был похож на одноимённый с CodeFest, но включал себя багфиксы и раскрывал мысль несколько лучше. На вопрос «во что может превратиться Yii, если его разработчики станут компанией» я чётко ответил «в Битрикс», чем, сдаётся мне, поверг окружающих в лёгкий в шок. На самом деле оговорился :) Вопросы были, кстати, очень хорошие и правильные. Спасибо задававшим их людям.

    Читаем

    18 комментариев
  3. Свои классы для правил роутера 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
    

    Код уже в транке, если есть желание или необходимость — можете опробовать. Замечания и предложения приветствуются.

    12 комментариев
  4. Yii::t и исходный язык для сообщений

    16 мая 2011

    При выборе исходного языка для сообщений, а именно того, который используется в Yii::t('app', 'message'), стоит задуматься о будущем.

    Выбрав Русский вы изначально усложняете себе жизнь: над переводами смогут работать только те, кто знает Русский. С Английским дела обстоят намного лучше: вторым языком его изучают почти во всём мире.

    5 комментариев
  5. 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',
            ),
        ),
    ));
    10 комментариев
  6. Yii 1.1 Application Development Cookbook

    10 мая 2011

    Yii 1.1 Application Development Cookbook Cover

    Сегодня была официально анонсирована вторая книга про PHP-фреймворк Yii, так что я, наконец, могу немного про неё рассказать.

    • Издательство: Packt Publishing.
    • Язык: Английский.
    • 13 глав и ~300 страниц.
    • Планируемая дата появления финальной версии в продаже: Сентябрь 2011.

    Оглавление:

    1. Under the Hood
    2. Router, Controller, and Views
    3. AJAX and jQuery
    4. Working with Forms
    5. Testing Your Application
    6. Database, Active Record, and Model Tricks
    7. Using Zii Components
    8. Extending Yii
    9. Error Handling, Debugging, and Logging
    10. Security
    11. Performance Tuning
    12. Using External Code
    13. Deployment

    Официальный анонс и возможность получить предварительные версии первых шести глав

    Это моя первая книга, так что с тем, как на самом деле писать я был не знаком. Сначала пытался сделать сразу идеально: на написание первых глав уходило очень много времени и сил, а вот результат всё-равно с первого раза не выходил желаемым. Ближе к 8—9 главе я осознал, что писать надо всё, что придёт в голову. Даже, если оно кажется не совсем тем, что должно оказаться в книге. Уже после того, как все планируемые моменты описаны, начинается процесс перечитывания и правки. Получается быстрее и лучше.

    58 комментариев
  7. 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,
    ),
    18 комментариев
  8. Визуализации различных алгоритмов и структур

    3 мая 2011

    Как-то я давал ссылки на визуализации алгоритмов сортировки: картинками и на canvas.

    В этот раз на глаза попалась довольно крупная подборка визуализаций на canvas, включающая в себя структуры, индексы, сортировки, кучи и графы.

    Рассматриваем

    Кстати, RBAC в Yii работает примерно так, за исключением того, что у RBAC граф ациклический.

    Комментировать
  9. 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 запросто может не сработать, если не выполнится правило валидации. А т.к. мы этого не проверили, произойдёт редирект без каких-либо признаков ошибки.

    15 комментариев
  10. Yii: тегирование кеша

    21 апреля 2011

    Простая, но эффективная реализация тегирования кеша для Yii, позволяющая делать так:

    // Добавление записи с тегами teg1 и tag2
    Yii::app()->cache->set($key, $value, 0, new Tags('tag1', 'tag2'));
     
    // Очистка кеша по тегу tag2
    Yii::app()->cache->clear('tag2');

    Читаем

    18 комментариев