<rmcreative>

RSS

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

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

  1. 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 комментариев
  2. 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 комментариев
  3. 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 комментариев
  4. Визуализации различных алгоритмов и структур

    3 мая 2011

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

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

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

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

    Комментировать
  5. 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 комментариев
  6. Yii: тегирование кеша

    21 апреля 2011

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

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

    Читаем

    18 комментариев
  7. Yii: универсальный scope для отношений

    19 апреля 2011

    Довольно часто простые именованные группы условий, они же scope, требуется использовать как в отношении, так для самой модели, в которой они описаны. Делается такой scope следующим образом:

    public function published($val = true)
    {
        $val = (int)$val;
        $owner=$this->getOwner();
        $criteria=$owner->getDbCriteria();
        $alias=$owner->getTableAlias();
     
        $criteria->mergeWith(array(
            'condition'=>$alias.'.published='.$val,
        ));
     
        return $owner;
    }

    getTableAlias даёт нам t, если используется сама модели и имя таблицы, если scope используется в отношении.

    17 комментариев
  8. Новый трекер GitHub

    15 апреля 2011

    GitHub, наконец, обзавёлся нормальным трекером, что радует. Похоже, минусов, по сравнению с Google Code, практически не осталось, поэтому Yii2 наверняка будет размещён на GitHub.

    Итого, на сегодняшний день:

    • Git и GitHub очень популярны и притягивают сильных разработчиков.
    • Есть куча книг, и отличных гайдов в том числе и на русском.
    • Есть хорошие GUI: SmartGit и TortoiseGit.
    • Удобно будет работать с патчами.

    Единственное, чему пока не удалось найти аналог, так это автотеггингу в SVN: $Id $ в файле заменялся на ревизию, время и автора. Сейчас эта возможность активно используется для перевода документации.

    5 комментариев
  9. Yii 1.1.7

    29 марта 2011

    На днях вышел релиз 1.1.7 PHP-фреймворка Yii, в который было включено более 90 исправленных ошибок, улучшений и новых возможностей.

    Полный список изменений доступен на сайте фреймворка, самые вкусные из которых мы рассмотрим ниже.

    Читаем

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

    27 марта 2011

    CodeFest 2011 удался.

    Читаем

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