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

Можно уточнить:
    1. Среда, 1 сентября

      РИФ 2010, доклад про фреймворки

      15 сентября на Воронежском РИФ расскажу про фреймворки. Доклад называется «PHP-фреймворк Yii. Выбираем PHP-фреймворк. Особенности разработки с фреймворками». Часть про Yii будет совсем небольшая.

      Регистрация заканчивается 14 сентября, так что если хотите посетить данное мероприятие — с регистрацией затягивать не стоит.


    1. Понедельник, 30 августа

      Yii: параметры для действия контроллера

      В стремительно приближающемся релизе Yii 1.1.4 будет довольно приятная возможность. Теперь можно будет использовать $_GET-параметры как параметры действия контроллера.

      Теперь вместо:


      class PostController extends CController
      {
      public function actionCreate()
      {
      if(isset($_GET['category']))
      $category=(int)$_GET['category'];
      else
      throw new CHttpException(404,'invalid request');


      if(isset($_GET['language']))
      $language=$_GET['language'];
      else
      $language='en';


      // ... действительно полезная часть кода ...
      }
      }



      можно будет так:


      class PostController extends CController
      {
      /**
      * Создание поста.
      * @param integer $category ID категории нового поста
      * @param string $language язык нового поста
      */
      public function actionCreate($category, $language='en')
      {
      // ... действительно полезная часть кода ...
      }
      }



      При этом, если в $_GET не оказалось указанного параметра и для параметра нет значения по умолчанию, будет выброшено исключение CHttpException.
      Если в PhpDoc метода присутствуют типы параметров (поддерживаются integer` (`int`), `boolean` (`bool`), `float` (`double`) и `string`), происходит автоматическое приведение типа из $_GET к указанному.

      ,

    1. Среда, 18 августа

      Наследование с одной таблицей в Yii

      Реляционные БД не поддерживают наследование, поэтому при отображении объекта на БД приходится как-то это обходить. При этом необходимо минимизировать количество JOIN. Решается данная проблема довольно простым способом при помощи паттерна наследование с одной таблицей. При этом, в таблице хранятся столбцы для всей ветки классов, наследуемых от заданного. Для определения типа модели обычно используется поле type.

      В Yii этот паттерн реализуется достаточно красиво.

      Читаем


    1. Четверг, 5 августа

      CUrlManager::addRules

      Довольно часто на форумах спрашивали, как добавить свои правила роутинга не из конфига, а, например, из БД или XML, лежащего в модуле.

      Теперь это можно сделать при помощи CUrlManager::addRules. Вызывать его необходимо до CWebApplication::processRequest. Всё, что будет добавлено позже будет проигнорировано.

      Одним из способов это сделать является использование событий. В данном случае CWebApplication::onBeginRequest.

      Например, для подгрузки правил из модулей в main.php пишем:


      'onBeginRequest'=>function($event){
      $route=Yii::app()->getRequest()->getPathInfo();
      $module=substr($route,0,strpos($route,'/'));

      if(Yii::app()->hasModule($module))
      {
      $module=Yii::app()->getModule($module);
      if(isset($module->urlRules))
      {
      $urlManager=Yii::app()->getUrlManager();
      $urlManager->addRules($module->urlRules);
      }
      }
      return true;
      },



      Код уже ушёл в SVN.


    1. Четверг, 29 июля

      Yii, судьба yiic shell

      В Yii 1.1.2 было решено, что yiic shell, используемый для генерации кода из консоли, должен быть постепенно вытеснен GUI-генератором Gii. Решение было мотивировано тем, что поддерживать два генератора будет слишком накладно.

      С выходом 1.1.3 сообщество обратило на это внимание.

      Стоит сразу пояснить, что yiic сам по себе как поддержка консольных команд ни в коем случае не перестанет поддерживаться. yiic shell — только та часть, которая отвечает непосредственно за генерацию кода.

      По идее существует компромиссный вариант — использовать и для Gii и для yiic shell одни и те же шаблоны, что позволит свести затраты на их поддержку к минимуму. Проблема с ним в том, что в Gii в шаблон передаётся гораздо большее количество параметров.


    1. Среда, 21 июля

      Ресурсы (asset) в Yii

      Опубликовал новый рецепт по Yii, рассказывающий, что такое ресурсы в Yii и детально описывающий процесс их публикации и подключения.

      Читаем


    1. Вторник, 20 июля

      Улучшенное сообщение об ошибке для Yii

      http://rmcreative.ru/playground/yii_trace/thumb.png

      Подумал над улучшением и без того довольно неплохих сообщений об ошибках Yii в режиме отладки. Реализовал несколько идей. В итоге получился довольно полезный обработчик. В дополнение к тому, что умеет стандартный:

      - Умеет показывать параметры stack trace.
      - Различает статические и динамические вызовы.
      - Выглядит немного получше.

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

      Опробовать обработчик в деле можно забрав код из SVN.

      Стоит ли включать эти изменения в ядро Yii? Что ещё можно доработать?


    1. Четверг, 15 июля

      zendAutoloader 1.1

      Обновил zendAutoloader до версии 1.1 и заодно решил написать о нём здесь. Класс является лёгким загрузчиком классов Zend Framework для Yii.

      В 1.1 добавилась возможность подгружать классы, использующие такое же именование, как в Zend Framework, но с другим префиксом.

      - Класс + документация в HTML
      - SVN


    1. Понедельник, 5 июля

      Yii 1.1.3

      Зарелизился Yii версии 1.1.3. Исправлено более двадцати ошибок, добавлено более пятидесяти мелких и не очень улучшений, которые отлично описал rosko на хабре.

      Русская документация, как обычно, не отстаёт от англоязычной и с каждым днём в ней становится всё меньше ошибок и опечаток (спасибо за ваши репорты).

      Обновляемся
      changelog

      ,

    1. Вторник, 29 июня

      Постраничная разбивка в Yii

      Упоминание о простейшей постраничной разбивке в документации к последним версиям Yii было заменено работой с компонентами zii. Да, в API всё осталось, но шансы наткнуться на нужный класс снизились, поэтому опишу простейшую постраничную разбивку на примере.

      Читаем


  1. 1
  2. 2
  3. 3
  4. Последняя

Подписаться на RSS

Интересное

Разделы

  1. (5)
  2. (11)
  3. (6)
  4. (9)
  5. (6)
  6. (6)
  7. (16)
  8. (60)
  9. (274)
  10. (52)
  11. (16)
  12. (12)
  13. (37)
  14. (6)
  15. (10)
  16. (14)
  17. (18)
  18. (16)
  19. (7)
  20. (8)
  21. (7)
  22. (7)
  23. (31)
  24. (76)
  25. (27)
  26. (68)
  27. (5)
  28. (203)
  29. (59)
  30. (6)
  31. (19)
  32. (73)
  33. (27)
  34. (70)
  35. (33)
  36. (10)
  37. (5)
  38. (6)
  39. (5)
  40. (341)
  41. (14)
  42. (11)
  43. (6)
  44. (13)
  45. (8)
  46. (18)
  47. (6)
  48. (15)
  49. (115)
  50. (18)
  51. (6)
  52. (9)
  53. (71)
  54. (16)
  55. (6)
  56. (25)
  57. (13)
  58. (5)
  59. (39)
  60. (7)
  61. (31)
  62. (7)
  63. (12)
  64. (11)
  65. (124)
  66. (34)
  67. (5)
  68. (18)
  69. (28)
  70. (9)
  71. (6)
  72. (8)
  73. (41)
  74. (10)
  75. (6)
  76. (12)
  77. (5)
  78. (9)
  79. (6)

Друзья