<rmcreative>

RSS
  1. Traits в trunk PHP

    26 августа 2010

    Вот и traits попали в транк PHP.

    Данная возможность была придумана как альтернатива множественному наследованию и mixin-ам. trait представляет собой набор PHP-кода (обычно это методы), который можно использовать в своём классе. Фактически trait — поддерживаемый на уровне языка умный copy-paste.

    trait Dumper {
      public function dump($var){
        echo '<pre>'.print_r($var, true).'</pre>';
      }
    }
     
    class MyClass {
      use Dumper;
    }
     
    $myClass = new MyClass();
    $myClass->dump('test');

    MyClass в итоге будет выглядеть как:

    class MyClass {
      public function dump($var){
        echo '<pre>'.print_r($var, true).'</pre>';
      }
    }

    Это самый простой случай. Более сложные и интересные вещи, такие как подмена имени метода при подключении, разрешение конфликтов, trait-ы из trait-ов, требования к классу, описаны на английском в wiki.

    16 комментариев
  2. EAP PhpStorm 2.0 стартанул

    24 августа 2010

    Вот и случилось. В данной версии:

    • Рефакторинг smart introduce.

    • Внушительный набор новых проверок кода.

    • Переработанный интерфейс.

    • GUI для Git.

    • Редактор фрагментов кода.

    • Множество других улучшений и исправлений.

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

    Пробуем и не забываем постить найденные баги в трекер

    UPD: Подоспел билд с фиксами.

    28 комментариев
  3. Скоро стартует EAP PhpStorm 2.0

    19 августа 2010

    Следующая версия и так уже очень хорошей IDE обещает быть не менее революционной, чем первая. Самое вкусное:

    • Поддержка Zend framework и Zend debugger.

    • Возможность самостоятельно прикрутить поддержку любого фреймворка через описание метаданных «магических» мест вроде загрузчика классов.

    • Дополнительные возможности рефакторинга.

    • Улучшения в поддержке пространств имён.

    • Улучшения в инспекторе кода.

    • Поддержка Mercurial, UI для Git и Mercurial.

    • LESS/SASS 3.

    • Softwrap (wordwrap?!).

    • Улучшенный интерфейс самой IDE.

    EAP обещают открыть в течение недели.

    Если вы не нашли в планах чего-то очень важного, об этом можно написать в багтрекер.

    9 комментариев
  4. Шевчук про рефакторинг

    19 августа 2010

    Довольно интересный рассказ про рефакторинг плохого тормозящего PHP кода.

    Читаем

    5 комментариев
  5. Наследование с одной таблицей в Yii

    18 августа 2010

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

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

    Читаем

    13 комментариев
  6. PhpStorm 1.0.2

    17 августа 2010

    Вышел релиз IDE PhpStorm.

    Изменения по сравнению с предыдущим билдом неплохие. Среди них такие, как:

    Комментировать
  7. Flowplayer 3.2.3

    17 августа 2010

    Вышла новая версия очень хорошего видеоплеера.

    • Появилась поддержка проигрывания видео на iPhone и iPad через QuickTime (это и раньше можно было делать просто поставив ссылку на видео) и напрямую через API HTML5 при помощи плагина.

    • Поддержка перемотки в псевдостриминге посредством range-запросов HTTP.

    • Множество других добавлений и исправлений.

    Пробуем и обновляемся

    2 комментария
  8. HTML5 Boilerplate

    13 августа 2010

    Пожалуй, самый лучший на данный момент шаблон для HTML5 разметки и сопутствующих штуковин.

    • Кроссбраузерный.

    • Совместим с IE6.

    • HTML5.

    • Правила для сжатия и кеширования.

    • Оптимизация под мобильные браузеры.

    • Стили для iOS, Android, Opera Mobile.

    • Куча других полезных техник.

    Рассматриваем и используем

    2 комментария
  9. Странная рамка вокруг input[type=submit] в Opera

    12 августа 2010

    Opera, в отличие от IE, не так часто «радует» странностями, но иногда, как и у остальных браузеров, случается.

    Тестовый наборчик (воспроизводится на последнем релизе, Windows)

    При фокусе на input[type=text] вокруг submit появляется чёрная однопиксельная рамка. Так как для кнопки использован border-radius, а рамка у нас прямоугольная, логично предположить, что это не border. Также проверил, что это не outline.

    Вадим Макеев подтвердил, что это такая фича, означающая, что форма в данный момент находится в фокусе, а кнопка с чёрной рамочкой её сабмитит. Работает это таким образом только на Windows. Ну и так как такое поведение желательно не всегда, в будущих версиях рамочка либо будет убрана совсем, либо будет документирована и её будет возможно убрать.

    Пока же единственный способ решить данную проблему — обернуть кнопку дополнительным элементом, задать самой кнопке border: none, а обёртке соответствующий border и border-radius.

    15 комментариев
  10. PHP, шаблоны и короткий синтаксис

    11 августа 2010

    Одним из самых частых аргументов, приводимых в пользу шаблонизаторов по сравнению с голым PHP, является более красивый синтаксис:

    {$code}

    вместо

    <?php echo $code?>

    На самом деле этот аргумент, хотя и самый часто используемый, является полностью необоснованным.

    Если включить в php.ini short_open_tag, можно вместо действительно громоздкого кода, приведённого выше, писать:

    <?=$code?>

    При использовании альтернативного синтаксиса управляющих конструкций, код будет гораздо понятней, чем шаблон того же Smarty:

    <ol>
    <?foreach($users as $user):?>
      <li>
        <h2><?=$user->username?></h2>
        <p><?=$user->notes?></p>
      </li>
    <?endforeach?>
    </ol>
    34 комментария