<rmcreative>

RSS
  1. Комментарии в разметке

    25 февраля 2011

    Иногда в HTML встречаются комментарии, не особо предназначенные для посторонних глаз или просто лишние. В лучшем случае это:

    <!--news list start-->
    туча кода
    <!--news list end-->

    Конечно, можно их просто удалить, но такие комментарии всё-таки полезны разработчику. Поэтому, вместо удаления лучше сделать их средствами серверного языка:

    <?php // news list start ?>
    туча кода
    <?php // news list end ?>

    или

    <%-- news list start --%>
    туча кода
    <%-- news list end --%>
    
    13 комментариев
  2. CodeFest 2011

    20 февраля 2011

    На прошлый CodeFest в Новосибирске мне попасть не посчастливилось, а вот на грядущем 19 и 20 марта я буду читать доклад про Yii. Не про сам фреймворк, а про его разработку: почему принимаются те или иные решения, почему над ним трудится ограниченный круг разработчиков, что на самом деле значит это Yii и многое другое.

    Остальную программу пока посмотреть негде, но, думаю, будет не хуже прошлого раза.

    7 комментариев
  3. Yii: параметры именованных групп условий в отношениях

    20 февраля 2011

    До готовящегося релиза 1.1.7 можно было применить именованные группы условий, они же named scopes, к отношениям:

    $posts=Post::model()->with('comments:recently:approved')->findAll();

    Но нельзя было указать для них параметры. Решил эту проблему creocoder. Теперь, слив свежий код из SVN, можно делать так:

    $users=User::model()->findAll(
        'with'=>array(
            'posts'=>array(
                'scopes'=>array(
                    'rated'=>5,
                ),
            ),
        ),
    );
    8 комментариев
  4. PhpStorm 2

    15 февраля 2011

    Вышел второй релиз отличной IDE для PHP, направленный, прежде всего на поддержку современных языков и технологий.

    • Полная поддержка PHP 5.3 с пространствами имён и замыканиями.
    • Поддержка Zend Debugger. При этом его не нужно настраивать.
    • Командная строка с поддержкой Zend_Tool и Symfony в комплекте.
    • Редактор SQL-запросов с возможностью их запуска, а также просмотра и изменения данных результата.
    • Поддержка ECMAScript 5 «use strict».
    • Поддержка LESS и SASS/SCSS.
    • Relax NG для XML.
    • Поддержка Mercurial.
    • Интеграция с трекерами GitHub, PivotalTracker и RedMine.
    • Новый интерфейс для всех платформ.

    • Официальный анонс

    • Наиболее значимые изменения в картинках и видео
    • Пробуем и обновляемся
    10 комментариев
  5. Windows, обновления и перезагрузка

    14 февраля 2011

    Бывало такое, что работали себе, никого не трогали и тут, прямо под руку попало окошко с перезагрузкой после обновления Windows и всё пропало? Или, ещё хуже, ночью машина незапланированно перегрузилась.

    Если да, то вот как отключить это окошко не отключая сами обновления:

    1. Start → Run.
    2. gpedit.msc.
    3. Local Computer Policy → Computer Configuration → Administrative Templates → Windows Components → Windows Update.
    4. Щёлкаем пару раз по No auto-restart for scheduled Automatic Update installation.
    5. Включаем.
    6. Перезагружаемся и забываем о зловредных окошках.

    Названия даны для англоязычного Windows. Переведённого у меня нет.

    UPD:

    no_automatic_restart.reg на случай, если у вас Windows 7 Home Edition:

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
    "NoRebootWithLoggedOnUsers"=dword:00000001
    
    8 комментариев
  6. Yii: объекты и классы как результат выборки

    12 февраля 2011

    Предложение возвращать объекты вместо массивов при использовании построителя запросов или DAO нам сразу понравилось. Сегодня у меня дошли руки до реализации и в SVN появилась данная возможность в несколько расширенном варианте.

    $sql='SELECT * FROM posts LIMIT 1';
    $command=$this->_connection->createCommand($sql);
    $command->setFetchMode(PDO::FETCH_OBJ);
    $post = $command->queryRow();
    echo $post->title;

    Параметры setFetchMode принимает идентично одноимённому методу PDO, тем самым позволяя, например, получать строки в виде новых объектов, экземпляров указанного класса или наполнять существующие объекты.

    8 комментариев
  7. $_REQUEST — не только $_GET и $_POST

    11 февраля 2011

    Очень многие программисты, работающие с PHP, неверно полагают, что $_REQUEST = $_GET + $_POST. На самом деле это не так.

    $_REQUEST = $_GET + $_POST + $_COOKIE. Причём, по умолчанию именно в этом порядке, что позволяет при использовании $_REQUEST перетирать значения $_GET или $_POST из одноимённой куки.

    12 комментариев
  8. Кеширование SQL-запросов в Yii

    11 февраля 2011

    Сегодня Qiang реализовал ещё одну интересную штуку для Yii: кеширование запросов к базе данных на всех уровнях от DAO до ActiveRecord.

    $sql = 'SELECT * FROM tbl_post LIMIT 20';
    // кешируем результат запроса 1000 секунд
    $rows = Yii::app()->db->cache(1000)->createCommand($sql)->queryAll();

    Если данные в таблице меняются, можно попробовать инвалидировать кеш, используя менее затратный запрос:

    $sql = 'SELECT * FROM tbl_post LIMIT 20';
    // сбрасываем кеш, если результат изменился
    $dependency = new CDbCacheDependency('SELECT MAX(update_time) FROM tbl_post');
    // кешируем на 1000 секунд
    $rows = Yii::app()->db->cache(1000, $dependency)->createCommand($sql)->queryAll();

    С AR это работает так:

    $posts = Post::model()->cache(1000)->findAll();
    $posts = Post::model()->cache(1000)->with('author')->findAll();

    Опробовать можно, забрав код из SVN. Войдёт в релиз 1.1.7.

    16 комментариев
  9. HMVC

    10 февраля 2011

    В последнее время часто всплывает тема иерархического MVC или HMVC. Штука довольно интересная, но по-простому почти нигде не описана, что и исправим.

    HMVC отличается от классического MVC лишь тем, что из любого контроллера, представления или компонента можно запустить действие другого контроллера.

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

    В большинстве реализаций, таких как HMVC в Kohana 3, CodeIgniter Modular Extensions, Zend Framework Action View Helper и runController в Yii, при этом, отдельного HTTP-запроса не происходит.

    Kohana 3 также умеет запускать контроллеры по HTTP, хотя, кроме весьма неплохой интеграции с её роутингом, ничего нового тут нет: использовать CURL или сокеты для дополнительного запроса не сложно.

    11 комментариев
  10. Командная строка в PhpStorm

    8 февраля 2011

    Ввод консольной команды в PhpStorm

    Поддержка выполнения консольных команд через Ctrl+Shift+X появилась уже несколько EAP-билдов назад, но информации по использованию чего-либо, кроме консолей Zend Framework или Symfony до недавнего времени не было.

    Оказалось, что подключить свои команды несложно.

    Если команда есть в path в виде .bat или .sh, то достаточно её добавить через Settings → Command Line Tool Support → Add → Custom Framework. Там можно поступить, например, с pear.

    Для того, чтобы получить поддержку Yii, после добавления команды $PhpExecutable$ путь/до/yiic.php необходимо открыть XML-ку с определением команд и добавить внутри <framework> примерно следующее:

    <command>
      <name>shell</name>
    </command>
    <command>
      <name>migrate</name>
    </command>
    <command>
      <name>message</name>
    </command>
    <command>
      <name>webapp</name>
    </command>

    После этого IDE начнёт подсказывать варианты команд. Чтобы получить более подробные подсказки, необходимо лучше описать команды.

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