PHP the Nice Way — Отличнейший пост, в котором автор делится своим опытом программирования на PHP, рассказывает о своих ошибках и открытиях. Пост полон полезных советов и рекомендаций.
Используйте лучший API в вашем PHP MySQL приложении — На данный момент в PHP доступно три интерфейса для работы с MySQL, а именно: ext/mysql, ext/mysqli и PDO_MySQL. В php.internals разгорелось обсуждение о необходимости исключения морально устаревшего ext/mysql из поставки по-умолчанию и переносе в PECL. В своем посте автор подробно раскрывает эту тему, приводит тщательное всестороннее сравнение трех интерфейсов.
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, на этот раз о кодировании информации.
Вопросы и мысли новичка о рендеринге на клиентской стороне — Автор впервые задается вопросом рендеринга на клиентской стороне, сравнивая рендеринг на сервере и клиенте, а также анализируя сложности, которые могут возникать при рендеринге контента на клиентской стороне. Предлагает решение выявленных проблем и отвечает на вопрос, когда можно использовать рендеринг на клиентской стороне и как для этого можно использовать ZF2.
Улучшение производительности Zend Framework 2 — Пока еще небольшой список советов и трюков, направленных на улучшение производительности приложений на ZF2. Автор планирует постоянно пополнять список, собирая советы и трюки из разных источников в одном месте.
Не тяните ваши зависимости — В этой статье автор сначала объясняет, почему в некоторых случаях необходимо тянуть зависимости в Symfony2 и затем — почему этого не стоит делать в остальных случаях.
Отделение кода приложения от фреймворка — Автор пишет о том, что в большинстве случаев код приложения сильно зависит от фреймворка, а также приводит рекомендации по тому, как максимально ослабить такие связи.
PHP.Kryptik.AB – Дайте мне ваш FTP! — В посте речь идет о давно гуляющей по сети малвари, которая угоняет пароли от FTP серверов и затем, подключившись к ним, встраивает вредоносный код в найденные PHP скрипты. Автор рассказывает, как происходит заражение, как обеззаразить сайт и как не допустить повторного заражения.
Валидация и фильтрация на PHP — Тема стара, и тем не менее, автор рассматривает типичные угрозы безопасности, рассказывает о том, что такое валидация. Приводит пример реализации с использованием стандартного расширения для фильтрации данных касается реализации на Symfony 2, Laravel 3, CakePHP 2 а также делится своим собственным модулем для фильтрации данных.
Геттеры и сеттеры — магия, которая должна знать свое место — Автор рассказывает, почему считает использование геттеров и сеттеров обычным способом не самой хорошей идеей, а также приводит пример когда они были действительно необходимы.
Ваше первое знакомство с Phalcon, 2 — Появившись совсем недавно, этот фреймфорк стремительно набирает популярность. Причины понятны: Phalcon написан на C и поставляется в виде нативного расширения для PHP, отсюда высочайшая производительность. Статья представляет собой отличный туториал от авторов фреймворка. В первой части описание и обзор возможностей, во второй — простое приложение-блог. Также по теме доступна статья на Хабре
Zend Framework Day 2012 — Совсем недавно в Киеве прошла конференция, посвященная Zend Framework и PHP. На сайте конференции доступны слайды докладов. Также имеется интересный отчет.
CMS/CMF
TYPO3 CMS 6.0 released — Вышла новая версия некогда популярной, но в последнее время непрерывно теряющей позиции, CMS. Посмотрим, может свежая версия изменит тенденцию.
Релизы плагинов для WordPress
bbPress — плагин позволяет создать полноценный форум на базе WordPress.
BackWPup — позволяет создавать резервные копии базы данных и файлов вашего WordPress сайта.
Theme-Check — инструмент для разработчиков тем, позволяет автоматически проверять тему на соответствие стандартам.
WP SlimStat — простой, но мощный плагин аналитики.
Force Password Change — требует от пользователя смены пароля во время первого входа на сайт.
Batcache — позволяет использовать Memcached для кэширования отрендеренных страниц.
Edit Flow — предоставляет кастомные статусы, календарь, редакторские комментарии и другие возможности для облегчения совместного использования сайта на WordPress.
BuddyPress Media — позволяет пользователям загружать и делиться изображениями, видео и аудио с другими участниками социальной сети, построенной на BuddyPress.
Ice Visual Revisions — добавляет в редактор возможность визуального отображения разницы между ревизиями.