Дайджест интересных новостей и материалов из мира PHP за последние две недели №2 (06.10.2012 — 19.10.2012)



    Предлагаем вашему вниманию очередную подборку с ссылками на новости из мира PHP.

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

    Новости и релизы


    • Вышли PHP 5.3.18 и 5.4.8 — В релизах исправлено более 20 багов. Всем пользователям PHP рекомендуется обновиться.
    • PHP 5.5 не за горами — Сообщение от David Soria Para, релиз-менеджера PHP 5.4, в котором он говорит о планах на PHP 5.5. Релиз-менеджером новой версии выбран Julien Pauli. Ориентировочная дата выхода Февраль-Март 2013. О нововведениях подробнее в следующем разделе.
    • PHP идет на мобильные платформы — Статья по мотивам интервью с Энди Гутмансом. Подробности обещаются на конференции ZendCon, которая пройдет 22-25 октября в Силиконовой долине.
    • Вышел 7ой выпуск журнала Web & PHP — В номере раскрыты следующие темы: Введение в масштабирование Big Data; 7 простых шагов чтоб стать звездой open source; Безопасность PHP для реального мира; Разработка веб-приложений на Haskell; Разгоните ваши приложения используя IIS & WinCache.
    • Релиз CodeIgniter 2.1.3 — В основном, исправлены ошибки, связанные с безопасностью. В частности, улучшено получение IP адреса в классе Input, предотвращающее спуфинг, который был возможен при определенных условиях.
    • Большое обновление в Bitbucket — Большой релиз с множеством нововведений. Подробнее уже написано на хабре

    PHP



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


    • OAuth на PHP — В статье описан протокол OAuth, а также работа с классом, реализующим PHP OAuth API. С помощью класса вы можете получить доступ к API любого сайта, поддерживающего любую версию OAuth, не заботясь о деталях внутреннего устройства.
    • DI, DiC, & Service Locator — Что такое Dependency Injection Container? Что такое Service Locator? Когда и что лучше использовать на PHP? На эти вопросы дает ответ автор в своей статье. Также приведен простой пример, в котором автор использует оба подхода — DiC для моделей и Service Locator для контроллеров.
    • Фоновые задачи на PHP и Resque2, 3, 4, 5, 6 — цикл статей, в котором описана организация очереди задач, которые выполняются в фоновом режиме. Используется Redis и php-resque (порт Resque).
    • SymfonyLive San Francisco 2012 — Видео всех докладов с недавно прошедшей конференции.
    • Android Push-уведомления с помощью Google Cloud Messaging (GCM), PHP и MySQL — Очень подробный туториал, в котором автор на примере показывает, как связать мобильное приложение и PHP+MySql для отправки push-уведомлений. Код прилагается.
    • Создаем плагин простых уведомлений для WordPress — Введение в создание плагинов для WordPress на примере плагина, показывающего пользователю сообщение вверху страницы в период, определенный администратором.
    • 5 причин использовать Codeception — Вы все еще не тестируете ваши PHP приложения? Попробуйте Codeception! Он прост, понятен и эффективен.
    • Руководство по Actions и Filters в WordPress для начинающих — Если вы хотите научиться гибко и быстро кастомизировать WordPress-сайты, то эта статья будет хорошей отправной точкой для вас.
    • Используем Selenium 2 вместе с PHPUnit — Скринкаст о совместном использовании инструментов тестирования.
    • Начинаем использовать Phinx — Введение в миграции на PHP на примере использования инструмента Phinx
    • PHP Unit работает как PHAR архив — Начиная с версии 3.7.5 PHP Unit может работать как PHAR архив. По ссылке вы найдете пример установки и использования. Также вы можете установить PHP Unit при помощи Composer.

    CMS/CMF


    • Релизы плагинов для Wordpress


      • Twitter2Posts — импортирует твиты из вашего Твиттер аккаунта, делая их постами в выбранной категории блога.
      • Pushover Notifications — позволяет вашему сайту на WordPress слать push-уведомления прямиком вам на iOS/Android устройство.
      • WP Social Stats — мощный инструмент социальной аналитики, который отслеживает эффективность постов в блоге и страниц в Facebook, Twitter, Google+, Pinterest и Stumbleupon.
      • HTML5 Video Player with Playlist — позволяет легко использовать HTML5 video тэг для проигрывания видео в браузере.
      • WP-antiProxy — получает реальный IP пользователя, спрятанного за proxy или балансировщиком.
      • Login Security Solution — плагин безопасноти, помогающий защититься от брутфорс атак.
      • PanoPress — позволяет легко вставлять 360° панорамы и виртуальные туры.
      • CampTix Event Ticketing — простой в использовании плагин для организации системы продажи билетов на онлайн и офлайн события прямо на вашем сайте.
      • Jetpack — позволяет прокачать ваш сайт супер фишками, доступными прежде только пользователям WordPress.com.
      • Tinypass — простой плагин, который позволяет организовать платный доступ к любому типу контента: постам, подписке на сайт, скачиванию файлов и даже просмотр видео.
      • WP Super Cache — отличный вариант для кэширования на вашем сайте.
      • Automatic Updater — автоматическое обновление плагинов, тем, ядра — как только обновления становятся доступными.
      • Bad Behavior — антиспам решение.
      • Twitter Tools интеграция вашего блога с Твиттером.
      • Social Web Links — покажет в виджете красивые иконки с ссылками на профили социальных сервисов.
      • Automatic Post Tagger — автоматически добавит тэги к постам на основе контента, заголовка и т.д.


    И напоследок


    Материал подготовили dbritan, nesttor и pronskiy
    Zfort Group
    112,00
    Компания
    Поделиться публикацией

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

      +4
      Какой-то слоник на картинке злобный. Совсем не соответствует тому, что был избран талисманом PHP.
        –1
        Подпись тоже странная: «попробуй PHP и останови нас».
          –1
          Нас сейчас заминусуют…
            +4
            Надпись гласит «Попробуй остановить нас», а не «попробуй PHP». Что, не исключает грамматической ошибки конечно, но она была в оригинале преднамеренно.

            Картинка оригинал из Симпсонов.
            goo.gl/b9Wkn
            +6
            php-шники совсем озверели
              +7
              А что нам остаётся, если повсюду твердят, что мы устарели?
                –9
                Ну как минимум понять, что проблема с php имеет место быть. Ведь среди повсюду твердящих есть и не такие уж глупые люди.

                Я на php писал до 2005 года. В основном на нём тогда и писал. Сейчас пишу как правило на десятке разных языков в одном проекте. И делать на php то, что я делаю сейчас было бы совсем невозможно. PHP был хорош, но его время кончилось, ибо большинство, кто мог толкать PHP вперёд (и даже не сам язык, а 3rd party либы) с него ушли.
          +4
          Забыли упомянуть новую нашумевшую лёгкую cms Bolt (bolt.cm), которая написана на микрофреймворке Silex, который в свою очередь на компонентах Symfony 2 (который на php).
            0
            Версия 0.7 вышла раньше, за обновлениями следим и о следующих будем сообщать
              0
              Упомянута в прошлом дайджесте в комментариях.
              +2
              Спасибо за подборку!
              Почитал про «Паттерн Null Object», по моему скромному мнению это ужасно.
                +2
                Прочитайте про него у Фаулера, он пишет гораздо лучше.
                Правда, если вы используете стороннюю ORM, то его ввод, будет подобен большому пятому колесу
                  0
                  Абсолютно согласен, по-моему если уж получили null то нужно с null и работать, а не делать такие заглушки, которые потенциально к сложно выявляемым ошибкам ведут.
                    0
                    Просто в статье приведён неудачный пример.

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

                    if ($loggingEnabled) {
                        $this->getLogger()->log('log message');
                    }
                    

                    можно сделать эту проверку единожны при инициализации логгера:

                    $this->logger = $logger ?: new NullLogger();
                    

                    и далее в коде просто писать

                    $this->logger->log('log message');
                    

                    что, несомненно, выглядит чище и более соответствует принципу DRY.
                    +2
                    Блог PHP Manual Masterpieces рулит.
                      0
                      А мне чёт не понравился. Комментят больше комменты к мануалу, чем сам мануал.
                        +1
                        А зачем комментить мануал не в мануале? Если есть ошибка или недочет — можно оставить багрепорт.
                        И кстати на тупой комментарий так же можно — его удалят.
                          0
                          Я про блог. Название как бы говорит, что показываются перлы в самом мануале. На самом деле выбираются перлы из комментов к мануалу, коих там довольно много.
                            0
                            Учитывая ущербность мануала (многие важные случаи не описаны, примеры неподробные, иногда документация вообще сводится к сигнатуре функции), комментарии — неотъемлемая часть мануала.
                      –29
                      PHP? Останавливать вас? Да ну. Делать нам нечего.
                      Сами помрёте.
                      Кстати, как вы умудрились больше 10 лет прожить-то?

                      >К счастью, такая проблема легко решается полиморфной реализацией объекта предметной области, используя паттерн >проектирования Null Object.
                      Думаю эта фраза лучше меня, старого сишника, показывает на нежизнеспособность языка. Вы о чём?!

                      P.S.Requiescant in pace и не мучайте людей.
                        +18
                        Старый сишник, а ведете себя как школьник.
                          –7
                          Главное не стареть душой:)
                            0
                            Точно! Отсутствие мозгов, в наше время, не самая большая проблема.
                          +2
                          А вот так, на PHP сайты (или как сейчас модно веб-приложения) быстрее и проще создавать чем на Си. Собственно с него я на пхп и перешёл после 10 лет разработки на сях и плюсах, и где-то там влезшего VB. Попробовал на сях CGI — долго и муторно, плюс куча условий типа поднять у себя локально идентичную хостерской среду, судя о ней лишь по косвенным призанкам.
                          +1
                          Конструкторы и миф о нарушении принципа подстановки Барбары Лисков — В статье сделана попытка разрушить миф о том, что конструкторы нарушают один из основных принципов объектно-ориентированного программирования

                          А почему это в разделе PHP?
                          Кстати, странно, о каком мифе они говорят. Вообще, то что конструктор не нарушает принципа подстановки Барбары Лисков, говорится в определении.
                            0
                            Автор статьи считает, что в случае когда подклассы одного типа инстанциируются по-разному (то есть имеют разные конструкторы) — это не нарушает тот самый принцип.
                              0
                              И это как раз и следует из определение принципа:
                              Пусть Q(X) является свойством, верным относительно объектов X некоторого типа T. Тогда Q(Y) также должно быть верным для объектов Y типа S, где S является подтипом типа T .

                              X является экземпляром класса T.
                              Конструктор не является свойством экземпляра.
                              Отсюда и следует, что S и T могут иметь различные конструкторы.

                              Зачем писать для этого целую статью — не понятно.
                                0
                                В определении не геворится «свойство класса», то есть имеется в виду не переменная, а любой член публичного интерфейса, в том числе и методы.
                                  0
                                  Я привел определение принципа.
                                  И что это ещё за термин «свойство класса» — это откуда-то из метопрограммирования?
                                  Есть класс, есть экземпляр.
                                  Есть методы экземпляра.

                                  В определении принципа нет ничего, что качалось бы методов класса. Говорится лишь про объекты, т.е. про экземпляры класса.
                                  Просто у многих каша в голове, из-за вольного интерпретирования терминов.
                                    0
                                    Имелись в виду методы доступные в экземпляре класса.

                                    Ок, что по-вашему значит фраза «является свойством, верным относительно объектов»?

                                    Вот оригинал статьи в которой сразу после определения вышеупомянутого принципа идет пояснение: A type's specification determines what properties we can prove about objects.
                                      0
                                      Имелись в виду методы доступные в экземпляре класса.

                                      Наверное вы хотели сказать, методы доступные у экземпляра класса?
                                      Конструктор не доступен. О чём я и говорю.

                                      Даже если вы и не это хотели сказать, то дальше по тексту говорится, что: Объекты полученные от суперкласса, должны иметь такое же поведение, что и полученные от подкласса. Речь идет о экземплярах, в свойства которых конструктор не входит.
                            0
                            Про PHP 5.2 фигня написана. Автор явно не в курсе в чем проблема. Проблема в том, что Zend сделала скрипты зазенденные для старых версий нерабочими в 5.3+. Потому зачастую довольно геморно обновиться, учитывая, что особых плюсов от обновления на новую ветку на старом софте не получишь.
                              +1
                              Спасибо!
                                0
                                В рубрику CMS можно добавить презентацию 16 октября нового Битрикс версии 12. Разработали новое ядро, переработали интернет-магазин. И еще добавили замечательную галку «Сделать хорошо», которая позволяет значительно ускорить сайт путем выгрузки статичных файлов в облако (CDN): www.youtube.com/watch?v=nDViMTRaSEM.
                                Видео презентации: www.youtube.com/watch?v=ebysFJf8pTA
                                  +1
                                  Спасибо автору статьи за подборку новостей. Интересно и полезно, только читать некогда)) Довольствуюсь беглым чтением, заголовками и комментами.

                                  Самые ожидаемые фичи от новых версий пхп: стабильный APC (а может и компилятор байт-кода), больше заимствований из функционального программирования. Вдохновляют сеттеры, геттеры, empty(), NullObject, Generators.

                                  Мечты: ах если бы добавили тип tuple, atom и паттерн-матчинг… А там глядишь и до hot-code-loading недалеко…

                                  Представьте себе такой код на пхп:
                                  <?php
                                  
                                  function factorial(0)
                                  {
                                    return 1;
                                  }
                                  
                                  function factorial($n)
                                  {
                                    return $n * factorial($n - 1);
                                  }
                                  
                                  echo factorial(7), PHP_EOL;
                                  
                                  


                                  Была статья недавно, про то, что собираются вычистить zend_api из PHP. Похоже, это одна из причин, являющаяся балластом для развития языка… Но несмотря на это — язык не перестают радовать и с этими недостатками.

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

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