Дайджест интересных новостей и материалов из мира PHP за последние две недели №15 (08.04.2013 — 22.04.2013)
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- PhalconEye v0.3.0 [1] — Новая CMS под управлением скомпилированного PHP-фреймворка Phalcon. Демо [2] и код [3].
- React v0.3.0 [4] — В прошлом выпуске дайджеста [5] упоминался этот замечательный инструмент, реализующий паттерн Reactor [6]. Доступна новая версия с множеством изменений и дополнений.
- Доступна PHP 5.5 beta3 [7] — В релизе фактически всего несколько исправлений [8], а значит, до финальной версии осталось совсем недолго, тем не менее, вопрос о том будет ли следующая версия бетой или релиз-кандидатом пока открыт.
- Релизы актуальных веток PHP 5.4.14 и PHP 5.3.24 [9] — Как обычно имеем ряд исправлений [10], и всем пользователям рекомендуется обновиться.
- Nomad PHP — виртуальная группа пользователей [11] — По всему миру действуют и активно развиваются десятки групп пользователей PHP. Найти ближайшую группу можно тут [12] или тут [13]. Но если в вашем городе или поблизости нет группы пользователей, то конечно вы сами можете стать организатором такого сообщества, но кроме того вы можете стать участником виртуальной группы Nomad PHP, вся деятельность и встречи которой проходят исключительно онлайн. Уже заявлена первая «встреча» с докладом от Rob Allen «Введение в Zend Framework 2» [14].
- Sylius — ecommerce-решение для Symfony2 [15] — Бесплатная платформа для электронной коммерции на базе Symfony 2 обзавелась новым сайтом и теперь поддерживается компанией KNP Labs [16].
- PHP Refactoring Browser [17] — Альфа релиз совершенно нового инструмента, позволяющего решать задачи автоматического рефакторинга, на которые раньше были способны только IDE, например, извлечение метода. В посте примеры использования 3-х доступных на данный момент вариантов рефакторинга. Код на GitHub [18].
- Compose — композиция функций [19] — Интересная библиотека, которая позволяет объединять php-функции в pipeline, при этом результат выполнения первой функции будет передан во вторую, второй — в третью и так далее.
PHP
- Трейты — это статический код [20] — О появившихся в PHP 5.4 трейтах уже писали не раз, но мнения об оправданности их использования расходятся [21] . Автор поста пишет о том, что трейты имеют те же недостатки, что и использование статического кода, а также некоторые другие.
- Особенности логического сравнения в PHP [22] — В дайджестах упоминались отличные ответы на StackOverflow от PHP core-разработчика Никиты Попова. По ссылке хабраперевод интересной информации об операторах сравнения в PHP.
- Стоит ли микрооптимизация потраченного на нее времени? [23] — Не раз обсуждавшийся вопрос вылился в более конкретную форму: что быстрее
is_array($array)
или $array === (array) $array
? По ссылке подробнейший ответ с деталями реализации.
Материалы для обучения
- Composer primer [24] — Отличный большой туториал по использованию Composer. Если вы еще не применяете этот замечательный инструмент для управления зависимостями, то самое время начать с прочтения этого подробнейшего руководства.
- Развертывание PHP-приложений с помощью Phing [25] — Сколько вам нужно совершить действий, чтобы развернуть ваше приложение? Автор поста считает, что если больше 2, то вам следует подумать об автоматизации процесса, например с помощью Phing [26]. По ссылке хороший туториал по этому инструменту, который основан на Apache Ant [27].
- Близорук ли PSR-0, или может быть вы? [28] — Вокруг стандартов PSR действительно было много споров, и очень часто можно наблюдать посты с критикой PSR. После очередного такого поста «PSR-0 близорук» [29], один из главных участников и идеолог группы PHP-FIG — Phil Sturgeon, написал пост, в котором ответил на все наболевшие вопросы по PSR-0, не скрывая, что у стандарта есть пара нерешенных вопросов, но, тем не менее, с поставленной задачей он отлично справляется. Стоит обратить внимание на комментарии, некоторые из них по объему текста и информации даже больше самого поста.
- Шпаргалка по PHPUnit vs. Phake [30] — Автор на небольших примерах сравнивает два популярных инструмента для модульного тестирования.
- Изучая Rails (и Ruby) [31] — Опытный PHP-разработчик, участник PHP-сообщества и докладчик, был вынужден изучить и использовать Ruby on Rails для одного из проектов. В своем посте он, как PHP-разработчик, делится полученным опытом и впечатлениями нового языка и фреймворка, указывая на различия и превосходства одного или другого.
- О стабильности Symfony [32] — В своем посте создатель Symfony и глава SensioLabs — Fabien Potencier, пишет о принципе которому должны следовать разработчики фреймворка. Он призывает сосредоточиться на повышении стабильности (исправление ошибок, написание тестов и документации), а не на реализации новых возможностей, так как это не только улучшит фреймворк, но и привлечет новых пользователей.
- Советы и рекомендации по прохождению Zend PHP Certification [33] — Если вы собираетесь проходить сертификацию по PHP от Zend, то обязательно ознакомьтесь с этим интервью, а также с двумя предыдущими: раз [34], два [35].
- Интервью с создателем PHPClasses.org — Manuel Lemos. [36] — Представитель бразильского PHP-сообщества и создатель PHPClasses.org — Мануэль, отвечает на вопросы о своем опыте в мире PHP и дает полезные советы разработчикам.
- Автоматизированное резервное копирование на Google Drive с помощью PHP [37] — Используя официальный API-клиент [38], автор реализовал небольшой консольный скрипт [39] для копирования файлов на Google Drive. Пост содержит немного общей информации об использовании Google Drive API.
- Расширяем шаблоны Twig [40] — Небольшой туториал о расширении базовых возможностей популярного шаблонизатора с помощью наследования, использования фильтров и функций.
- Беседа с PHP-экспертом [41] — В качестве эксперта на вопросы отвечала Lorna Jane Mitchell [42], в основном давая полезные советы для новичков. По ссылке полное содержание беседы со ссылками на материалы.
- PSR-Duh! [43] — Небольшой туториал о рефакторинге кода, с целью приведения к виду, соответствующему стандартам PSR.
- Нужен ли нам фреймворк для этого? Или поторопитесь, PHP-FIG [44] — В своем посте автор пишет о том, что использование фреймворков не всегда оправдано, и часто можно обойтись использованием набора библиотек, решающих конкретные задачи. В связи с этим, автор призывает PHP-FIG заняться стандартизацией интерфейсов. В таком случае будет гораздо проще комбинировать библиотеки и внедрять зависимости.
- Генерирование одноразовых ссылок [45] — Небольшой туториал, в котором описан один из способов решения задачи генерирования ссылок, доступных для использования только единожды и имеющих ограниченное время работы. Такие ссылки могут быть полезны для всякого рода верификаций.
- HTTP — протокол, который обязан знать веб-разработчик [46] — Пост рекомендуется всем, у кого есть пробелы в знаниях протокола HTTP. Базовая информация схеме работы, структура запросов, коды ответов, рассмотрены основные заголовки. Примеры и ссылки инструменты для изучения прилагаются.
- Погружаемся в Behat [47] — Немного личного опыта и впечатлений от использования отличного BDD-инструмента.
- Используем Dice для внедрения зависимости на PHP [48] — Небольшой туториал, в котором показано, как можно быстро реализовать DI-контейнер для управления зависимостями в вашем PHP-приложении. На помощь приходит минималистичный, но достаточно мощный инструмент Dice [49].
- 6 вещей, которые следует учесть при выборе фреймворка [50] — Обилие качественных решений среди PHP-фреймворков конечно радует, но с другой стороны затрудняет выбор. Конечно же, в первую очередь хочется отдать предпочтение тому, с которым работал больше всего, но прежде рассмотрите приведенные автором аргументы. Возможно, для решения следующей задачи вам следует выбрать другой фреймворк.
- Я был плохим PHP-разработчиком [51] — Немного личного опыта и советов по самосовершенствованию в качестве разработчика.
- Проваленный сайд-проект [52] — Многие разработчики помимо основной работы занимаются своими личными или командными сайд-проектами. Провалив один такой проект, автор, тем не менее, получил ценный опыт, которым и поделился в заметке.
- Работа в PHP с Tokenizer [53] — Отличный хабрапост, в котором приведены примеры использования лексера (tokenizer).
- Рефлексия в PHP [54] — Туториал, в котором описаны базовые принципы и показаны примеры использования рефлексии [55] в PHP.
- Заповеди PHP [56] — Автор собрал и описал несколько вещей, которые никогда не стоит делать на PHP. Но, как говорил старина Оби-Ван: «Только ситхи все возводят в абсолют», поэтому кое в чем с автором можно поспорить.
- Используем SimplePie для чтения из новостных каналов [57] — Почему бы в связи с закрытием Google Reader не написать свой агрегатор? По ссылке небольшой туториал по использованию библиотеки SimplePie [58], благодаря которой работа с RSS-каналами становится до неприличия простой.
- 15 советов для пользователей MySQL [59] — Слайды с весьма полезными советами.
- Использование ActiveRecord от Yii в игре тайм менеджере [60] — Хороший хабрапост, в котором автор делится опытом расширения Yii фреймворка для уменьшения числа запросов к базе данных.
- Архив скринкастов по Laravel 4 [61] — Отличный новый ресурс с компиляцией скринкастов по фреймворку Laravel. Желающие могут записать и отправить свой собственный скринкаст.
- Аспектно-ориентированное программирование на PHP с помощью Go! [62] — Автор замечательной библиотеки Go! AOP уже публиковал несколько постов на хабре: Избавляемся от дублирования сквозного кода в PHP [63] , Знакомимся с аспектно-ориентированным программированием в PHP [64] , Шаблон программирования «Текучий интерфейс» в PHP [65] . На этот раз англоязычный туториал с примерами использования этого полезного инструмента.
Ссылка [5] на предыдущий выпуск.
Автор: pronskiy
Источник [66]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/32746
Ссылки в тексте:
[1] PhalconEye v0.3.0: http://phalconeye.com/
[2] Демо: http://phalconeye.com/demo/
[3] код: https://github.com/lantian/PhalconEye
[4] React v0.3.0: http://reactphp.org/2013/04/14/v0.3.0.html
[5] прошлом выпуске дайджеста: http://habrahabr.ru/company/zfort/blog/175931/
[6] Reactor: http://en.wikipedia.org/wiki/Reactor_pattern
[7] Доступна PHP 5.5 beta3: http://php.net/index.php#id2013-04-11-1
[8] несколько исправлений: https://github.com/php/php-src/blob/php-5.5.0beta3/NEWS
[9] Релизы актуальных веток PHP 5.4.14 и PHP 5.3.24: http://php.net/index.php#id2013-04-11-2
[10] ряд исправлений: http://php.net/ChangeLog-5.php
[11] Nomad PHP — виртуальная группа пользователей: http://nomadphp.com/
[12] тут: http://php.ug/
[13] тут: http://www.phpclasses.org/browse/group/
[14] Rob Allen «Введение в Zend Framework 2»: http://nomadphp.com/2013/04/16/may-2013-rob-allen/
[15] Sylius — ecommerce-решение для Symfony2: http://sylius.com/
[16] KNP Labs: http://knplabs.com/
[17] PHP Refactoring Browser: http://qafoo.com/blog/041_refactoring_browser.html
[18] GitHub: https://github.com/QafooLabs/php-refactoring-browser
[19] Compose — композиция функций: https://github.com/igorw/compose
[20] Трейты — это статический код: http://www.whitewashing.de/2013/04/12/traits_are_static_access.html
[21] расходятся: http://habrahabr.ru/post/167153/
[22] Особенности логического сравнения в PHP: http://habrahabr.ru/post/176117/
[23] Стоит ли микрооптимизация потраченного на нее времени?: http://stackoverflow.com/questions/3470990/is-micro-optimization-worth-the-time/3471356#3471356
[24] Composer primer: http://daylerees.com/composer-primer
[25] Развертывание PHP-приложений с помощью Phing: http://systemsarchitect.net/deploying-php-applications-with-phing/
[26] Phing: http://www.phing.info/
[27] Apache Ant: http://ru.wikipedia.org/wiki/Apache_Ant
[28] Близорук ли PSR-0, или может быть вы?: http://philsturgeon.co.uk/blog/2013/04/is-psr0-shortsighted-or-are-you
[29] «PSR-0 близорук»: http://r.je/php-psr-0-pretty-shortsighted-really.html
[30] Шпаргалка по PHPUnit vs. Phake: http://css.dzone.com/articles/phpunit-vs-phake-cheatsheet
[31] Изучая Rails (и Ruby): https://blog.engineyard.com/2013/learning-rails-and-ruby
[32] О стабильности Symfony: http://fabien.potencier.org/article/68/about-symfony-stability-over-features
[33] Советы и рекомендации по прохождению Zend PHP Certification: http://7php.com/zend-certification-advice-eric-hogue/
[34] раз: http://7php.com/zend-certification-advice-michelangelo-van-dam/
[35] два: http://7php.com/zend-certification-advice-lorna-mitchell/
[36] Интервью с создателем PHPClasses.org — Manuel Lemos.: http://7php.com/php-interview-manuel-lemos/
[37] Автоматизированное резервное копирование на Google Drive с помощью PHP: http://systemsarchitect.net/automated-backups-to-google-drive-with-php-api/
[38] API-клиент: http://code.google.com/p/google-api-php-client/
[39] скрипт: https://github.com/lukaszkujawa/cp2google
[40] Расширяем шаблоны Twig: http://phpmaster.com/extending-twig-templates-inheritance-filters-and-functions/
[41] Беседа с PHP-экспертом: http://www.sitepoint.com/what-happened-when-we-talked-php-with-the-experts/
[42] Lorna Jane Mitchell: http://www.lornajane.net/
[43] PSR-Duh!: http://net.tutsplus.com/tutorials/tools-and-tips/psr-duh/
[44] Нужен ли нам фреймворк для этого? Или поторопитесь, PHP-FIG: http://happyaccidents.me/blog/do-we-need-a-framework-for-that#.UW6NWoK5L-k
[45] Генерирование одноразовых ссылок: http://phpmaster.com/generating-one-time-use-urls/
[46] HTTP — протокол, который обязан знать веб-разработчик: http://net.tutsplus.com/tutorials/tools-and-tips/http-the-protocol-every-web-developer-must-know-part-1/
[47] Погружаемся в Behat: http://css.dzone.com/articles/diving-behat
[48] Используем Dice для внедрения зависимости на PHP: http://www.phpbuilder.com/articles/application-architecture/design/use-dice-for-simplified-php-dependency-injection.html
[49] Dice: http://r.je/dice.html
[50] 6 вещей, которые следует учесть при выборе фреймворка: http://phpmaster.com/6-things-to-consider-when-choosing-a-framework/
[51] Я был плохим PHP-разработчиком: http://latviancoder.com/story/i-was-bad
[52] Проваленный сайд-проект: http://www.whitewashing.de/2013/04/06/a_failed_side_project.html
[53] Работа в PHP с Tokenizer: http://habrahabr.ru/post/176725/
[54] Рефлексия в PHP: http://net.tutsplus.com/tutorials/php/reflection-in-php/
[55] рефлексии: http://ru.wikipedia.org/wiki/Отражение_(программирование)
[56] Заповеди PHP: http://biasedphp.com/php-commandments
[57] Используем SimplePie для чтения из новостных каналов: http://phpmaster.com/consuming-feeds-with-simplepie/
[58] SimplePie: http://simplepie.org/
[59] 15 советов для пользователей MySQL: https://speakerdeck.com/jaytaph/15-protips-for-mysql-4developers
[60] Использование ActiveRecord от Yii в игре тайм менеджере: http://habrahabr.ru/company/alawar/blog/177181/
[61] Архив скринкастов по Laravel 4: http://laracasts.com/
[62] Аспектно-ориентированное программирование на PHP с помощью Go!: http://net.tutsplus.com/tutorials/php/aspect-oriented-programming-in-php-with-go/
[63] Избавляемся от дублирования сквозного кода в PHP: http://habrahabr.ru/post/165329/
[64] Знакомимся с аспектно-ориентированным программированием в PHP: http://habrahabr.ru/post/170021/
[65] Шаблон программирования «Текучий интерфейс» в PHP: http://habrahabr.ru/post/170019/
[66] Источник: http://habrahabr.ru/post/177555/
Нажмите здесь для печати.