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



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

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

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



    PHP


    • PHP the Nice Way — Отличнейший пост, в котором автор делится своим опытом программирования на PHP, рассказывает о своих ошибках и открытиях. Пост полон полезных советов и рекомендаций.
    • Используйте лучший API в вашем PHP MySQL приложении — На данный момент в PHP доступно три интерфейса для работы с MySQL, а именно: ext/mysql, ext/mysqli и PDO_MySQL. В php.internals разгорелось обсуждение о необходимости исключения морально устаревшего ext/mysql из поставки по-умолчанию и переносе в PECL. В своем посте автор подробно раскрывает эту тему, приводит тщательное всестороннее сравнение трех интерфейсов.
    • PHP: Эра тестирования — По мнению автора, за последнее десятилетие PHP сообщество прошло через несколько важных этапов: переход к ООП, безопасность веб-приложений, использование фреймворков, стандарты кода, и на данный момент проходит этап, который можно назвать эрой тестирования.
    • If it's not written in PHP it's irrelePHPant! — Автор не без доли юмора призывает PHP сообщество к активному написанию собственных инструментов исключительно на PHP.
    • 3 странных факта из PHP, о которых вы могли не знать — Если вы программируете на PHP достаточно долго, то для вас этот пост будет просто напоминанием о неочевидном поведении вещественных чисел в PHP или об «эффектах» нестрогой типизации. Однако если вы новичок, то эти факты могут быть открытием.
    • PHP Trends — Небольшое приложение, которое показывает список PHP библиотек, фреймворков и т.д. (репозиториев на GitHub), отсортированных по популярности. В качестве индекса популярности используется число добавивших репозиторий в избранное.
    • Упрощенное хэширование паролей — Некоторое время назад Anthony Ferrara предложил включить стандартизированный интерфейс хэширования в ядро PHP. Предложение было поддержано голосованием, а затем реализовано и уже включено в версии PHP 5.5. Автор предложения в своем посте рассказывает подробности нового функционала и отвечает на самые часто задаваемые вопросы по этому поводу.
    • Запускаем программы командной строки как функции в PHP — Автор был вдохновлен Питоновской sh и создал нечто подобное для PHP. Используя разработанный им инструмент можно делать вот такие вещи, например: $sh->ssh(array('myserver.com', '-p' => 1393))->tail(array("/var/log/dumb_daemon.log", 'n' => 100)); и это будет равносильно вызову: ssh myserver.com -p 1393 tail /var/log/dumb_daemon.log -n 100 из командной строки.

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


    • Мигрируем на Dependency Injection — Интересный пост, в котором автор подробно описывает процесс изменения кода небольшого приложения, которое не использует DI к такому, которое использует.
    • Создаем собственный фреймворк на основе компонентов Symfony2 — В 11 выпуске автор расскажет нам о возможностях HttpKernelInterface, добавляя все большее количество listeners на запрос. Это очень удобный способ протестировать и отладить отдельную фичу, а потом просто интегрировать её во flow запроса, там где необходимо. Предыдущие выпуски: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
    • Принцип единственной обязанности — Продолжаем рассматривать принципы SOLID. На этот раз речь пойдет о букве «S». Для начала автор в посте демонстрирует нарушение принципа на примере класса, который кроме обработки данных пользователя, также реализует функционал доступа к базе данных. Затем автор рефакторит код, разбивая один класс на несколько новых, каждый со своими обязанностями.
    • Суп из парадигм — В этом небольшом видеоролике небезызвестный деятель PHP сообщества — Anthony Ferrara рассказывает о разнице между процедурным, объектно-ориентированным и функциональным программированием и о том, как они пересекаются в коде.
    • Кодирование — Еще один видеоролик от Anthony Ferrara, на этот раз о кодировании информации.
    • Как делать вид, что вам не безразлична ваша работа — Интересный доклад о том, что делать (PHP) разработчику для собственного развития.
    • Что нового в Zend\Form появится с версией ZF 2.1 — Перевод статьи Michaël Gallego об обновлениях компонента Zend\Form в ZF 2.1 (новые элементы, менеджер элементов, короткие имена, зависимости и полностью обновленная загрузка файлов). Оригинал.
    • Вопросы и мысли новичка о рендеринге на клиентской стороне — Автор впервые задается вопросом рендеринга на клиентской стороне, сравнивая рендеринг на сервере и клиенте, а также анализируя сложности, которые могут возникать при рендеринге контента на клиентской стороне. Предлагает решение выявленных проблем и отвечает на вопрос, когда можно использовать рендеринг на клиентской стороне и как для этого можно использовать ZF2.
    • Отладка и профилирование на PHP с помощью Xdebug — Подробный туториал о использовании базовых возможностей Xdebug. В качестве IDE для отладки использован NetBeans.
    • Улучшение производительности Zend Framework 2 — Пока еще небольшой список советов и трюков, направленных на улучшение производительности приложений на ZF2. Автор планирует постоянно пополнять список, собирая советы и трюки из разных источников в одном месте.
    • Создание класса корзины покупок — Подробный туториал по реализации корзины покупок в ООП стиле от Ларри Ульмана.
    • Не тяните ваши зависимости — В этой статье автор сначала объясняет, почему в некоторых случаях необходимо тянуть зависимости в Symfony2 и затем — почему этого не стоит делать в остальных случаях.
    • Отделение кода приложения от фреймворка — Автор пишет о том, что в большинстве случаев код приложения сильно зависит от фреймворка, а также приводит рекомендации по тому, как максимально ослабить такие связи.
    • Конфигурация Nginx для Symfony2 — Расстановка точек над конфигурацией NGINX для Symfony2 приложений.
    • PHP.Kryptik.AB – Дайте мне ваш FTP! — В посте речь идет о давно гуляющей по сети малвари, которая угоняет пароли от FTP серверов и затем, подключившись к ним, встраивает вредоносный код в найденные PHP скрипты. Автор рассказывает, как происходит заражение, как обеззаразить сайт и как не допустить повторного заражения.
    • Валидация и фильтрация на PHP — Тема стара, и тем не менее, автор рассматривает типичные угрозы безопасности, рассказывает о том, что такое валидация. Приводит пример реализации с использованием стандартного расширения для фильтрации данных касается реализации на Symfony 2, Laravel 3, CakePHP 2 а также делится своим собственным модулем для фильтрации данных.
    • Геттеры и сеттеры — магия, которая должна знать свое место — Автор рассказывает, почему считает использование геттеров и сеттеров обычным способом не самой хорошей идеей, а также приводит пример когда они были действительно необходимы.
    • Строго типизированный JSON на PHP — Продолжение предыдущего поста о необычном использовании сеттеров.
    • Создаем конструктор запросов на PHP — Небольшая заметка о создании простого конструктора запросов.
    • Ваше первое знакомство с Phalcon, 2 — Появившись совсем недавно, этот фреймфорк стремительно набирает популярность. Причины понятны: Phalcon написан на C и поставляется в виде нативного расширения для PHP, отсюда высочайшая производительность. Статья представляет собой отличный туториал от авторов фреймворка. В первой части описание и обзор возможностей, во второй — простое приложение-блог. Также по теме доступна статья на Хабре
    • Zend Framework Day 2012 — Совсем недавно в Киеве прошла конференция, посвященная Zend Framework и PHP. На сайте конференции доступны слайды докладов. Также имеется интересный отчет.

    CMS/CMF


    • TYPO3 CMS 6.0 released — Вышла новая версия некогда популярной, но в последнее время непрерывно теряющей позиции, CMS. Посмотрим, может свежая версия изменит тенденцию.
    • Релизы плагинов для WordPress


      • bbPress — плагин позволяет создать полноценный форум на базе WordPress.
      • Knews Multilingual Newsletters — позволяет создавать качественные мультиязычные подписки.
      • WP Subscriber Form — добавляет форму подписки в контент.
      • BackWPup — позволяет создавать резервные копии базы данных и файлов вашего WordPress сайта.
      • Theme-Check — инструмент для разработчиков тем, позволяет автоматически проверять тему на соответствие стандартам.
      • WP SlimStat — простой, но мощный плагин аналитики.
      • Force Password Change — требует от пользователя смены пароля во время первого входа на сайт.
      • Batcache — позволяет использовать Memcached для кэширования отрендеренных страниц.
      • Edit Flow — предоставляет кастомные статусы, календарь, редакторские комментарии и другие возможности для облегчения совместного использования сайта на WordPress.
      • No Weak Passwords — запрещает использование слабых паролей.
      • Automatic Updater — автообновление плагинов, тем и ядра.
      • BuddyPress Media — позволяет пользователям загружать и делиться изображениями, видео и аудио с другими участниками социальной сети, построенной на BuddyPress.
      • Ice Visual Revisions — добавляет в редактор возможность визуального отображения разницы между ревизиями.



    И напоследок


    Ссылка на предыдущий выпуск.
    Материал подготовили dbritan, nesttor и pronskiy
    Zfort Group 279,47
    Компания
    Поделиться публикацией
    Комментарии 16
    • –4
      Хм, даже на знаю как сказать. Большое спасибо за пост, но он мне понравился бы намного больше, если бы вышел в понедельник утром :)
      • +13
        Заносите в закладки с пометкой «открыть в понедельник утром» :)
      • +6
        Спасибо за библиотеку для сложения чисел, поржал =)
        Пример кода и классное описание тут:
        github.com/Herzult/SimplePHPEasyPlus/blob/master/README.markdown
        • 0
          Поддерживаю, я сам сначала не понял юмора, в чем же простота
        • –5
          «обсуждение о необходимости исключения морально устаревшего ext/mysql из поставки по-умолчанию».
          Этим индусам заняться больше нечем, и слов «обратная совместимость» они знать не знают, уроды.
          Так же как и utf-8 по дефолту в htmlspecialchars 5.4 ломает нахрен все cp1251 сайты, и никакой .ini это не исправляет. Хоть бы одна их индусская безмозглая голова посмотрела в сторону java, чтобы взять только одно слово «обратная совместимость».
          • 0
            Были уже даже здесь на хабре тесты, которые даже замедление mysqli показывают по сравнению со старым добрым ext/mysql. Prepared statement они в цикле тестируют, дебилы, которые вообще в обычных условиях не приносят ускорения, так как сбрасываются при каждом запросе страницы.
            И минусующие — иди в лес, учите слова «обратная совместимость», нехрена ломать то что работает и есть не просит.
            • +2
              Работает ваш код на 3.0 — зачем на сервере обновляться до 5.4? Если вам нравиться быть on edge, то извольте соответствовать.

              Обратная совместимость тянет PHP ко дну. Это не Java или C#, которые финансируются топовыми корпорациями с одной стороны, а с другой — их дизайн и дизайн стандартных библиотек был продуман. Обратная совместимость мешает превратить PHP в современный объектно-ориентированный язык. Java-подобный, но с динамической типизацией. Отчасти, обратная совместимость помешала перейти на Unicode в ядре.

              Я был бы счастлив, если бы в версии 6.0 отказались от всякой совместимости с <5.0, прежде всего в стандартных библиотеках — перевели бы их все на ООП, раскидали бы по нэймспэйсам, упорядочили бы сигнатуры и т. д., и т. п.
              • –1
                Ну так создать новый язык, назвать его не php, и делать там всё сразу по уму и ломать всё старое к чертям собачьим.
                А миллиард работающих строк — пускай работают на php.
                Зачем обновляться? Потому что ускорение, закрытие дыр. Зачем вообще нужен язык, не обеспечивающий обратную совместимость? Который не ценит уже затраченные усилия разработчиков, заставляя выкидывать всё на свалку либо тратить время на переработку. В мире есть дела поважнее чем переделывать старый прекрасно работающий код.
            • +2
              Как же мне не хватало либы для сложения чисел! Наконец-то я решу все свои проблемы!
              • +1
                Если не затруднит не могли бы Вы в двух словах объяснить для чего нужна такая библиотека (сложения чисел) и в каких случаях её используют, в чем её смысл. (или ссылочкой какой поделиться).Прошу простить мою серость, раньше не сталкивался с проблемой сложения чисел (ну если только какое округление). Спасибо.
                • +2
                  Не пойму, это тонкий сарказм, или человек интересуется длинной арифметкой? О_о
                  • 0
                    нет это не сарказм, но слово длинная арифметика уже наводит на мысли. Т.е. речь о длинных числах как я понимаю?
                    • +1
                      Это библиотека прикол. Попытка показать что иногда люди слишком увлекаются гибкостью, созданием интерфейсов, драйверов и т.д. тем самым усложняя код до невозможности.
                      • +2
                        шутка значит, старею…
              • –1
                Вот эту бы статью, например, включил в список одной из подборок:
                anton.shevchuk.name/php/about-php/
                • 0
                  отличная подборка

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

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