Дайджест интересных новостей и материалов из мира PHP за последние две недели №5 (17.11.2012 — 30.11.2012)
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- Релизы PHP 5.4.9 и PHP 5.3.19 — Исправлены ошибки, всем рекомендуется обновиться.
- Релиз MongoDB PHP Driver 1.3.0 — Новый драйвер MongoDB для PHP. Еще немного об изменениях в посте.
- Symfony 1.4.20, 2.0.19 и 2.1.4 — Минорные релизы Symfony. Исправления безопасности.
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