<rmcreative>

RSS

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

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

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

    30 августа 2010

    В стремительно приближающемся релизе 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 к указанному.

    UPD: после пары дней внутренних и внешних обсуждений было решено выкинуть приведение типов.

    28 комментариев
  2. 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 комментариев
  3. EAP PhpStorm 2.0 стартанул

    24 августа 2010

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

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

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

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

    • GUI для Git.

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

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

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

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

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

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

    19 августа 2010

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

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

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

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

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

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

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

    • LESS/SASS 3.

    • Softwrap (wordwrap?!).

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

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

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

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

    19 августа 2010

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

    Читаем

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

    17 августа 2010

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

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

    Комментировать
  7. 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 комментария
  8. PhpStorm 1.0.2 RC build 95.480

    6 августа 2010

    После небольшого затишья выложен свежий билд IDE PhpStorm, являющийся RC 1.0.2.

    • Исправлены почти все ложные срабатывания «Unused local variable».

    • Поправили ошибку с неработающим HTML5 при наличии пробелов в пути к установленной IDE.

    • Исправления в дополнении. См. Code | Code Completion | Cyclic Expand Word (Alt + /) и Cyclic Expand Word (Backward) (Alt + Shift + /).

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

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

    • Полный список изменений

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

    Комментировать
  9. JAXL 2.0

    3 августа 2010

    Вышла вторая версия JAXL — объектно-ориентированного XMPP-фреймворка для PHP, о котором я упоминал ранее.

    • В лучшую сторону изменилась архитектура.

    • Событийная модель.

    • Поддержка XEP:

    0004 – Data Forms 0030 – Service Discovery 0045 – Multi-User Chat 0050 – Ad-Hoc Commands 0085 – Chat State Notification 0092 – Software Version 0114 – Jabber Component Protocol 0133 – Service Administration 0249 – Direct MUC Invitation
    2 комментария
  10. Разыменование массивов в trunk PHP

    1 августа 2010

    Ещё одна приятная новость. В транк PHP 5.4 (который, возможно, будет в итоге выпущен как PHP 6) попала очень полезная возможность — разыменование массивов:

    function test() {
        return array("one" => "PHP", "two" => "trunk", "three" => "is very cool");
    }
    echo test()["two"]; // !!!

    То есть теперь можно обращаться к индексу массива, возвращаемого из метода.

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