<rmcreative>

RSS

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

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

  1. Yii, построитель запроса

    17 ноября 2010

    Сегодня в SVN Yii появилась ещё одна интересная возможность. Построитель запросов. Тем, кто работал с CodeIgniter, он должен быть хорошо знаком (там он почему-то называется ActiveRecord).

    Итак, теперь, если вы не хотите использовать ActiveRecord, запросы можно строить динамически:

    $user = Yii::app()->db->createCommand()
      ->select('username, password')
      ->from('tbl_user')
      ->where('id=:id', array(':id'=>1))
      ->queryRow();
    28 комментариев
  2. Yii 1.1.5

    15 ноября 2010

    Вышел релиз Yii 1.1.5, который привнёс внушительное количество исправлений и доработок.

    Самое вкусное:

    Yii::app()->clientScript->registerCoreScript()->registerScriptFile()->registerStyle();
    3 комментария
  3. Поиск с дополнением по API Yii в адресной строке Opera

    14 ноября 2010

    • Идём на http://www.yiiframework.com/doc/api/.
    • Ставим курсор в поисковое поле в левой колонке. В контекстном меню выбираем create search.
    • В поле keyword вводим yii и сохраняем.
    • Закрываем Opera.
    • Идём в папку профиля Opera.
    • Открываем search.ini.
    • Находим нашу секцию по кейворду yii. Найдётся что-то вроде:
    [Search Engine 24]
    UNIQUEID=76AA614D8305D94BB62572AB5A59C224
    …
    
    • Добавляем в самый конец секции следующее:
    Suggest Protocol=JSON
    Suggest URL=http://www.yiiframework.com/api/suggest/?q={SearchTerm}&json=1
    
    1 комментарий
  4. Yii: время выполнения и скушанная память

    14 ноября 2010

    Внизу страницы этого блога можно видеть время генерации страницы и скушанную память. В Yii вывести это можно так:

    Отработало за <?=sprintf('%0.5f',Yii::getLogger()->getExecutionTime())?> с. Скушано памяти: <?=round(memory_get_peak_usage()/(1024*1024),2)."MB"?>
    4 комментария
  5. Yii: массивы как параметры для действия контроллера

    29 октября 2010

    И ещё одна приятность, попавшая в SVN. Теперь можно передавать параметрам действий массивы.

    class MyController extedns CController {
      // параметр объявлен как массив
      function actionArray(array $tests){
        foreach($tests as $test){
          echo $test;
        }
      }
     
      // параметр не объявлен как массив
      function actionScalar($test){
        echo $test;
      }
    }
    • Если в $_GET передан не массив, в $test будет только один элемент.
    • Если параметр не объявлен как массив, а передан массив, получим HTTP ошибку 400 (Bad request).

    Напомню, что передать PHP массив через адресную строку можно так:

    /my/array/?tests[]=0&tests[]=2&tests[]=4&tests[]=1
    
    8 комментариев
  6. Улучшения в консольных командах Yii

    29 октября 2010

    Пару часов назад Qiang залил в SVN Yii улучшения для консольных команд.

    Теперь можно так:

    yiic CommandName ActionName --Option1=Value1 --Option2=Value2 ...
    

    При этом опции передадутся именованными параметрами сответствующим методам-действиям команды.

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

    class SitemapCommand extends CConsoleCommand {
      public function actionIndex($type, $limit=5) { ... }
      public function actionInit() { ... }
      public function actionProcess(array $type) { ... }
      public function actionSelfdestruct($confirm=false) { ... }
    }

    можно передать параметры так:

    yiic sitemap index --limit=5 --type=News
    yiic sitemap index --type=News
    yiic sitemap --type=News
    yiic sitemap process --type=News --type=Post
    yiic sitemap selfdestruct --confirm
    
    • Порядок параметров не важен.
    • Параметры с значениями по умолчанию можно не указывать.
    • Если указать параметр без значения, получим на входе true.
    • Если не указать действие, то будет вызвано действие index.
    • Если указать параметр более одного раза и действие принимает параметры типа array, получим в параметре массив.

    Все улучшения обратно совместимы, так что существующие команды будут работать как раньше.

    3 комментария
  7. WebConf Riga 2010

    6 октября 2010

    Открыта регистрация на WebConf Riga 2010, которая состоится в Риге 6 и 7 ноября. Регистрация продлится до 31 октября, но если вы не из Латвии или стран ЕС и хотите приехать, самое время получать визу.

    Список докладчиков и докладов уже опубликован на сайте конференции и лично меня он очень радует. По счастливому совпадению, ни одного доклада, который был бы мне не совсем интересен.

    Дополнительно будут проведены мастер-классы Percona DBA Day и InnoDB/XtraDB Day.

    Мой доклад будет называться «PHP фреймворк Yii: основы, техники и немного инсайда». Его план примерно такой:

    6 комментариев
  8. Yii Iconized Menu 1.1

    29 сентября 2010

    Приделал к Yii Iconized Menu поддержку спрайтов, которые отдаёт Яндекс, и сделал этот метод умолчательным.

    В действии, опять же, можно посмотреть справа в секциях «Интересное» и «Друзья» →

    Использовать так:

    <?$this->widget('ext.yiiext.widgets.iconizedMenu.EIconizedMenu',array(
        'items'=>array(
            array('label'=>'Yii Framework', 'url'=> 'http://yiiframework.com/'),
            array('label'=>'RMCreative', 'url'=> 'http://rmcreative.ru/'),
            array('label'=>'Twitter', 'url'=> 'http://twitter.com/'),
        ),
    ))?>
    3 комментария
  9. Yii web shell

    25 сентября 2010

    Yii web shell

    Веб-консоль для Yii. Позволяет запускать консольные команды из браузера. Полезна на серверах без SSH и в админках консольного стиля.

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

    7 комментариев
  10. Yii Iconized Menu

    22 сентября 2010

    Решил поделиться довольно удобным виджетом для Yii, позволяющим выводить меню с значками слева. В данный момент при помощи него реализованы секции «Интересное» и «Друзья» справа →

    Пользоваться им очень просто:

    <?$this->widget('ext.yiiext.widgets.iconizedMenu.EIconizedMenu',array(
        // Раскомментируйте для использования Яндекс вместо Google
        //'iconizerBaseUrl' => 'http://favicon.yandex.ru/favicon/',
        'items'=>array(
            array('label'=>'Yii Framework', 'url'=> 'http://yiiframework.com/'),
            array('label'=>'RMCreative', 'url'=> 'http://rmcreative.ru/'),
            array('label'=>'Twitter', 'url'=> 'http://twitter.com/'),
        ),
    ))?>

    Реализация на самом деле очень проста и сводится к использованию соответствующих сервисов Google или Яндекс, который, кстати, умеет собирать значки в спрайт. Также можно использовать и другие сервисы.

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