Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012)



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

    Приятного чтения!


    Итоги 2012


    PHP 5.4

    Безусловно, самой важной новостью в мире PHP за 2012 год стал долгожданный выход новой мажорной версии. С момента выхода версии 5.3 прошло почти 3 года, тем не менее, новая версия не стала революционной, и большинство изменений в PHP 5.4.x никак не повлияют на существующий код. Есть несколько несовместимостей и ряд новых возможностей, среди которых трейты, встроенный веб-сервер, новый синтаксис массивов и другие. Также особенно порадовала разработчиков значительно возросшая производительность.
    Кроме того, не может не радовать новость о том, что в 2013 выйдет PHP 5.5, а альфа версия уже была выпущена ранее в этом году (чего ждать от будущего релиза).

    Zend Framework 2

    Еще один долгожданный релиз уходящего года. Zend Framework 2 — это совершенно новый фреймворк, несовместимый с Zend Framework 1. Еще бы, ведь с релиза ZF 1.0.0 прошло больше 5 лет! И отказаться от груза обратной совместимости было, несомненно, правильным решением.
    Начать работу с ZF2 рекомендуется с прочтения соответствующей wiki страницы. Также обязательно следует ознакомиться с паттернами проектирования, применяемыми в ZF2. Имеется хорошая подборка материалов по ZF2 тут и тут. Для желающих принять участие в разработке ZF2 написан отличный подробный пост.

    Yii Framework

    Главным событием уходящего года в сообществе Yii могло стать объявление даты релиза Yii2, или, например, публичная бета, но ни первого, ни второго так и не произошло. Тем не менее, число пользователей фреймворка растет невероятно быстро, а сообществом и core-командой за год проделана огромная работа.
    Выпущено 3 больших обновления, код проекта перенесен на GitHub. В Киеве прошла первая конференция, посвященная Yii, а также были опубликованы новые книги по Yii.
    И, конечно же, хорошая новость о том, что период поддержки Yii 1.1 продлен, и текущая версия будет поддерживаться не до конца этого года, как планировалось, а до конца 2015.

    Приняты стандарты PSR-1 и PSR-2

    Давным давно (в 2009 году) в одной далекой-далекой галактике (в Чикаго) группа PHP разработчиков собравшись на конференции php|tek начала обсуждение о том, что предпринять, чтоб сделать работу с их проектами лучше, а для пользователей сделать выбор решения для своих задач проще. Так и образовалась PHP Framework Interoperability Group, известная как PHP-FIG. И первым результатом работы группы стала публикация стандарта PSR-0, который регламентирует именование классов, файлов, пространств имен, структуру директорий.
    И вот после долгого обсуждения в начале 2012 года были приняты сразу два новых стандарта:
    PSR-1 и PSR-2, оба относящиеся к форматированию кода.
    На подходе новый стандарт PSR-3 об интерфейсах логгирования. Также любой может участвовать в обсуждении и предложить свои идеи тут.

    Phalcon

    Появившись в начале года, этот фреймворк сразу привлек внимание тем, что разработан в виде расширения для PHP. К концу 2012 Phalcon дорос уже до версии 0.8. Кроме высочайшей производительности даже по сравнению с микро-фреймворками, Phalcon подкупает отличной документацией, наличием подробных туториалов и даже примера целого приложения.

    Composer

    Этот год по праву можно назвать годом Composer! И хотя появился этот замечательный инструмент управления зависимостями на PHP в 2011, в текущем году он пережил настоящий бум. Число постов, статей и материалов просто зашкаливает: 1, 2, 3, 4. Безусловно, рост всеобщей распространенности этого инструмента стал огромным шагом для всего PHP-сообщества.

    PHP



    Материалы для обучения


    • Как устроены переменные в PHP — Замечательный хабрапост, в котором подробно раскрыты детали внутреннего устройства переменных в PHP.
    • Как устроены массивы в PHP — Еще один отличный пост от автора предыдущей статьи. На этот раз о массивах.
    • Создаем REST приложения, используя микрофреймворк Slim — Отличный пошаговый туториал на IBM developerWorks по созданию приложения, реализующего REST API на популярном микрофреймворке Slim.
    • 7 способов испортить BCrypt — Если вы разрабатываете систему пользователей в проекте, то вы наверняка слышали, что использование bcrypt для хэширования паролей повышает безопасность. Интернет полон статей о правильном использовании bcrypt в PHP. Автор же в своей статье сфокусировался на типичных ошибках, допускаемых при использовании bcrypt и способных свести на нет все усилия по повышению уровня безопасности. Среди них: использование неслучайной соли, использование неправильного источника для случайной соли и другие.
    • О библиотеках и зависимостях — Существует мнение что, меньшее число зависимостей у интрумента означает меньшую связанность. Автор в своем посте аргументирует в пользу того, что само по себе наличие зависимостей совсем не плохо, а их наличие уменьшает связанность и повышает связность.
    • Будущее ZF2 — Подкаст, в котором на вопросы о будущем фреймворка отвечают ведущие эксперты и разработчики Zend Framework: Evan Coury, Ralph chindler, Matthew O'Phinney, Rob Allen. Раскрыты следующие темы: планы на ветку 2.1; PHP 5.4 и 5.5 с ZF2: цели на 2013 год: ZF2 в сравнении с другими фреймворками.
    • Микрооптимизация на PHP — Пост, в котором автор развенчивает некоторые мифы о микрооптимизации. Является частью серии постов о том, как PHP разработчику стать лучше, и написан в ответ на вот этот пост.
    • Временные зоны, правильный способ — Хороший туториал об использовании временных зон с примерами на PHP и MySQL. Для тех, кто сталкивается с подобной задачей впервые, данная статья будет хорошей отправной точкой.
    • Программирование с Anthony — логика, адаптивный веб-дизайн — Продолжение серии видео роликов от известного PHP-деятеля Anthony Ferarra. На этот раз о булевой логике и адаптивном веб-дизайне. Остальные видео тут.
    • Как мы читаем код? — Пост хоть и не имеет непосредственного отношения к PHP, но будет интересен всем, так как в нем идет речь о необычном психологическом эксперименте, в котором разработчику предлагалось взглянуть на небольшой исходник и понять, что он делает, при этом отслеживается движение глаз разработчика по коду. Видео прилагается.
    • Итак, вы хотите тестировать — Chris Hartjes, более известный как Grumpy Programmer, автор книги «Руководство по разработке тестируемых приложений на PHP», написал статью, в которой дает ответы на самые часто задаваемые вопросы о том, как начать тестировать свои приложения и разрабатывать более качественный код. Он дает ряд рекомендаций и советов: как распознать нетестируемый код, почему следует перестать пользоваться инструментами без тестов и другие.
    • Что не так с PHP расширением Semaphore — В своем посте автор пишет об обнаруженных проблемах в расширении Semaphore.
    • Эффективный рефакторинг — В посте автор собрал несколько рекомендаций по рефакторингу PHP кода. В целом, советы достаточно банальны, но ознакомиться не будет лишним.
    • Введение в Bullet: функциональный микрофреймворк на PHP — Bullet — это новый PHP микрофреймворк, в котором реализован функциональный подход к роутингу, что по мнению автора, позволяет избежать значительного дублирования кода. В посте изложены основные принципы и преимущества фреймворка, приведены небольшие примеры. Функциональный подход для PHP, впрочем, не уникален, советуем ознакомиться, например, с микрофреймворком Bluz.
    • Как стать веб-разработчиком — Небезызвестный Ларри Ульман сделал подборку ресурсов на тему, как стать веб-разработчиком, естественно PHP-ориентированным.
    • Введение в паттерны проектирования — Скринкаст, в котором автор делает обзор основных паттернов проектирования. Также вдогонку автор написал посты, более подробно раскрывающие суть паттернов Декоратор и Заместитель (Proxy).
    • Разделяемые интерфейсы — В рамках создания стандартов PSR выдвигается идея описания некоторых стандартных интерфейсов. Суть идеи проста: использовать отдельные компоненты в различных библиотеках и фреймворках без необходимости написания каких-либо оболочек или прослоек. Автор, один из основателей PHP-FIG, в своем посте пишет о ряде проблем, связанных с таким подходом. В ответ был написан другой пост.
    • S-выражения на PHP, 2, 3, 4, 5, 6 — Серия превосходных статей, в которых автор раскрывает суть лексического анализа и описывает создание интерпретатора LISP на PHP.
    • PHP non alpha numeric 7 and 6 char code — В прошлом выпуске дайджеста была ссылка на интересный эксперимент, в котором автор пишет PHP скрипт без использования числовых и буквенных символов. У автора появился последователь, который демонстрирует пример кода выводящего «log(12)» и, написанного с использованием только лишь символов: $_=+(); Браво!


    Ссылка на предыдущий выпуск.
    Материал подготовили dbritan, nesttor и pronskiy

    Поздравляем всех с наступающим Новым годом! До встречи в 2013!
    Zfort Group
    112,00
    Компания
    Поделиться публикацией

    Комментарии 23

    • НЛО прилетело и опубликовало эту надпись здесь
        +1
        Зеленый был бы лучше? В целом же слегка недоумеваю почему в списке есть YIi но нету Symfony.
          +2
          Обеими руками за Symfony 2, в этом году он получил ещё большее развитие
        +2
        В этом году был релиз версии 2.1, в нем не было каких-то концептуальных изменений, поэтому в дайджесте его и нет. Идет развитие проекта, как и множества других проектов, но вы же не обижаетесь на отсутсвие упоминания о kohana 3.3…

        Ничего личного, просто в symfony 2.1 не было ничего особенного
          0
          ну тоже самое и про Yii можно сказать, однако он там есть. Опять же не поймите неправильно, я использую оба этих фреймворка. Про кохану не обижаюсь потому что не использую ее. Хотя уже давно думал опробовать его в деле, просто руки не доходят.
            +2
            Пиар ZF2. А про Symfony2 не упомянули потому что конкурент, и к тому-же намного круче)
              0
              Я скорее о том что на месте Yii вполне мог быть любой из популярных нынче фреймворков. В то же время за этот год ничего существенного в Yii я так и не заметил. И да, я уже полтора года жду 2-ую ветку (хотя я заметил что на проектах с Yii я так же прикручиваю twig и доктрину. Если без первого пункта я могу еще и обойтись, то примитивная реализация AR в Yii мне порядком поднадоело. Делать штучные проекты — это круто, но когда проект быстро развивается — значит меняется и база. А писать миграции руками… я слишком ленив для этого. Даже пытался написать свой мэппер для YIi что бы схема генерилась и обновлялась автоматически, но проще оказалось интегрировать доктрину).

              Касательно второго Zend-а, мне почему-то казалось что релиз был еще в 11-ом году. У меня почему-то сложилось очень неприятное ощущение при работе с этим фреймворком. Мол вроде и хорошо все, но плюсов по сравнению с той же симфони я найти так и не смог.

              Ну и еще смущает упоминание Phalcon — то же казалось что появился он где-то в конце 11-ого года. Помниться я еще загорелся, думал что круто. А потом разочаровался ибо профита от него не так много.
                +1
                Вы сами ответили на свой вопрос, многие уже давно ждут хотя бы анонса второй версии Yii, но в этом году мы получили только продление поддержки первой версии. Так что считайте что Yii в этом списке в качестве разочарования года.

                ZF2 зарелизился в сентябре 2012, опять же с пометкой «наконец-то». Никакого пиара. Как вообще можно сравнивать крутость продуктов, когда у них разница в релизе почти 2 года..? (скорее риторический вопрос)

                Composer как и Phalcon тоже появился не в этом году, но популярность и наибольшее развитие получил как-раз в 2012
                  0
                  Почему «разочарование года»? Не забывайте что основная команда состоит из 3-4х человек, у которых есть тоже основная работа и свои бытийские нужды, к тому же они делают все основательно и продумавая каждый шаг, уж лучше пусть релиз на полгода позже, чем баги и какие-то просчеты в архитектуре потом на всю ветку. К тому же за этот год у Yii много плюсов: постоянно растет сообщество, как ru(скинулись на imperavi редактор кстати) так и во всем мире, подтверждение тому активность на Гитхабе, все больше проектов переходят с каких-либо cms на Yii. Ваше негодование вообще ничем не объяснимо, кроме «я хочу и все», никто вам ничем не обязан.
                    0
                    ну как вам сказать. если судить по сообщениям на форуме то не могу сказать что это все нельзя было сделать поскрее. Особенно это косается AR — по описанию то что было сделано можно было сделать за пару вечеров и выглядело не слишком впечатляющим. Вообще в последнее время Yii все больше и больше вводит меня в грусть (чем больше я узнаю о Symfony И других хороших фреймворках не только из мира PHP). И все эти дурацкие заявлени о чрезмерной сложности и попытках все упростить делают все только груснее и сложнее в поддержке. Хотя когда-то я дико фанател от YIi (когда он только только появился).
                      0
                      Я к тому что не стоит обещать того чего не будет. Хотя в общем щете никто ничего не обещал. Так что я вообще не думаю что уместно упоминать Yii в чарте. Ну или упоминуть его и все популярные фреймворки с лозунгом «Комьюнити стало больше, все растет и все такео»…
                +1
                Круче? Массивнее — не спорю. Круче? Спорно весьма.
              0
              отсутсвие упоминания о kohana 3.3…
              Кстати, да, а почему Kohana не упомянута? (вопрос, естественно, авторам поста)
                0
                kohana 3.3 — это, вцелом, обычный очередной релиз с исправлением багов и улучшением производительности

                Или, что бы никого не обидеть, нужно было написать о Symfony 2.1, kohana 3.3, CakePHP 2.2, drupal 7.18/6.27 и тд..? О релизах мы старались писать по мере выхода дайджестов, а наши «итоги 2012» — это не истина последней инстанции, а субъективное мнение 3-х разработчиков (которые старались быть объективны), к слову ни один из нас не работает с Zend Framework и не пытается его рекламировать.

                Поэтому давайте не будем обижаться друг на друга и закроем эту тему.
                  0
                  kohana 3.3 — это, вцелом, обычный очередной релиз с исправлением багов и улучшением производительности
                  Позвольте не согласиться. Это отнюдь не багфикс-релиз. Изменений, конечно, не так много по сравнению с 3.2, чем между 2.x → 3.0, но она обратно несовместима с 3.2 (PSR-0, другой принцип обработка исключений и т.д.). Разница примерно такая же как Yii 1.0 → 1.1
                    +1
                    Напишите в следующий раз о Symfony CMF и PHPCR пожалуйста. А еще, ODM для OrientDB наконец портировали в доктрину (https://github.com/doctrine/orientdb-odm), это очень классная новость.
                0
                Еще по Yii в этом году на русском вышла книга "Yii. Сборник рецептов".
                • НЛО прилетело и опубликовало эту надпись здесь
                    0
                    По Yii ещё одна книга за этот год появилась: The Yii Book.
                      0
                      Также куплена OEM-лицензия Imeravi Redactor для проектов на Yii. То есть можно пользоваться редактором бесплатно, если пишете проект на Yii: rmcreative.ru/blog/post/imperavi-redactor--kuplena-oem-litsenzija-dlja-yii
                        +1
                        Также важным считаю успехи JetBrains в развитии PhpStorm.
                          –1
                          Ну и появление фреймворка Laravel тоже считаю важным. Проект пока молодой, но довольно интересный. Есть свежие хорошие идеи.
                            0
                            За Phalcon отдельное спасибо!
                            Давно ждал хороший фреймворк в виде расширения PHP с нормальной документацией.

                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                            Самое читаемое