- PVSM.RU - https://www.pvsm.ru -

Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012)

Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012)

Следуя традиции, мы решили подвести итоги уходящего года и выделить самые значимые события в мире PHP, которых, к счастью, было немало. И, конечно же, подборка с ссылками на свежие материалы.

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

Итоги 2012

Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012)

PHP 5.4 [1]

Безусловно, самой важной новостью в мире PHP за 2012 год стал долгожданный выход новой мажорной версии. С момента выхода версии 5.3 прошло почти 3 года, тем не менее, новая версия не стала революционной, и большинство изменений в PHP 5.4.x никак не повлияют на существующий код. Есть несколько несовместимостей [2] и ряд новых возможностей [3], среди которых трейты [4], встроенный веб-сервер, новый синтаксис массивов и другие. Также особенно порадовала разработчиков значительно возросшая производительность [5].
Кроме того, не может не радовать новость о том, что в 2013 выйдет PHP 5.5, а альфа версия [6] уже была выпущена ранее в этом году (чего ждать [7] от будущего релиза).

Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012)

Zend Framework 2 [8]

Еще один долгожданный релиз уходящего года. Zend Framework 2 — это совершенно новый фреймворк, несовместимый с Zend Framework 1. Еще бы, ведь с релиза ZF 1.0.0 прошло больше 5 лет! И отказаться от груза обратной совместимости было, несомненно, правильным решением.
Начать работу с ZF2 рекомендуется с прочтения соответствующей wiki страницы. Также обязательно следует ознакомиться с паттернами проектирования, применяемыми в ZF2 [9]. Имеется хорошая подборка материалов по ZF2 тут [10] и тут [11]. Для желающих принять участие в разработке ZF2 написан отличный подробный пост [12].

Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012)

Yii Framework [13]

Главным событием уходящего года в сообществе Yii могло стать объявление даты релиза Yii2, или, например, публичная бета, но ни первого, ни второго так и не произошло. Тем не менее, число пользователей фреймворка растет невероятно быстро, а сообществом и core-командой за год проделана огромная работа.
Выпущено 3 [14] больших [15] обновления [16], код проекта перенесен на GitHub [17]. В Киеве прошла первая конференция, посвященная Yii [18], а также были опубликованы новые [19] книги [20] по Yii.
И, конечно же, хорошая новость [21] о том, что период поддержки Yii 1.1 продлен, и текущая версия будет поддерживаться не до конца этого года, как планировалось, а до конца 2015.

Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012)

Приняты стандарты PSR-1 и PSR-2 [22]

Давным давно (в 2009 году) в одной далекой-далекой галактике (в Чикаго) группа PHP разработчиков собравшись на конференции php|tek начала обсуждение о том, что предпринять, чтоб сделать работу с их проектами лучше, а для пользователей сделать выбор решения для своих задач проще. Так и образовалась PHP Framework Interoperability Group [23], известная как PHP-FIG. И первым результатом работы группы стала публикация стандарта PSR-0 [24], который регламентирует именование классов, файлов, пространств имен, структуру директорий.
И вот после долгого обсуждения в начале 2012 года были приняты сразу два новых стандарта:
PSR-1 [25] и PSR-2 [26], оба относящиеся к форматированию кода.
На подходе новый стандарт PSR-3 об интерфейсах логгирования. Также любой может участвовать в обсуждении и предложить свои идеи тут [27].

Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012)

Phalcon [28]

Появившись в начале года, этот фреймворк сразу привлек внимание тем, что разработан в виде расширения для PHP. К концу 2012 Phalcon дорос уже до версии 0.8 [29]. Кроме высочайшей производительности [30] даже по сравнению с микро-фреймворками [31], Phalcon подкупает отличной документацией [32], наличием подробных туториалов и даже примера целого приложения [33].

Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012)

Composer [34]

Этот год по праву можно назвать годом Composer! И хотя появился этот замечательный инструмент управления зависимостями на PHP в 2011, в текущем году он пережил настоящий бум. Число постов, статей и материалов просто зашкаливает: 1 [35], 2 [36], 3 [37], 4 [38]. Безусловно, рост всеобщей распространенности этого инструмента стал огромным шагом для всего PHP-сообщества.

Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012) PHP

Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012) Материалы для обучения

  • Как устроены переменные в PHP [47] — Замечательный хабрапост, в котором подробно раскрыты детали внутреннего устройства переменных в PHP.
  • Как устроены массивы в PHP [48] — Еще один отличный пост от автора предыдущей статьи. На этот раз о массивах.
  • Создаем REST приложения, используя микрофреймворк Slim [49] — Отличный пошаговый туториал на IBM developerWorks по созданию приложения, реализующего REST API на популярном микрофреймворке Slim.
  • 7 способов испортить BCrypt [50] — Если вы разрабатываете систему пользователей в проекте, то вы наверняка слышали, что использование bcrypt для хэширования паролей повышает безопасность. Интернет полон статей о правильном использовании bcrypt в PHP. Автор же в своей статье сфокусировался на типичных ошибках, допускаемых при использовании bcrypt и способных свести на нет все усилия по повышению уровня безопасности. Среди них: использование неслучайной соли, использование неправильного источника для случайной соли и другие.
  • О библиотеках и зависимостях [51] — Существует мнение что, меньшее число зависимостей у интрумента означает меньшую связанность. Автор в своем посте аргументирует в пользу того, что само по себе наличие зависимостей совсем не плохо, а их наличие уменьшает связанность [52] и повышает связность [53].
  • Будущее ZF2 [54] — Подкаст, в котором на вопросы о будущем фреймворка отвечают ведущие эксперты и разработчики Zend Framework: Evan Coury [55], Ralph chindler [56], Matthew O'Phinney [57], Rob Allen [58]. Раскрыты следующие темы: планы на ветку 2.1; PHP 5.4 и 5.5 с ZF2: цели на 2013 год: ZF2 в сравнении с другими фреймворками.
  • Микрооптимизация на PHP [59] — Пост, в котором автор развенчивает некоторые мифы о микрооптимизации. Является частью серии [60] постов о том, как PHP разработчику стать лучше, и написан в ответ на вот этот [61] пост.
  • Временные зоны, правильный способ [62] — Хороший туториал об использовании временных зон с примерами на PHP и MySQL. Для тех, кто сталкивается с подобной задачей впервые, данная статья будет хорошей отправной точкой.
  • Программирование с Anthony — логика [63], адаптивный веб-дизайн [64] — Продолжение серии видео роликов от известного PHP-деятеля Anthony Ferarra. На этот раз о булевой логике и адаптивном веб-дизайне. Остальные видео тут [65].
  • Как мы читаем код? [66] — Пост хоть и не имеет непосредственного отношения к PHP, но будет интересен всем, так как в нем идет речь о необычном психологическом эксперименте, в котором разработчику предлагалось взглянуть на небольшой исходник и понять, что он делает, при этом отслеживается движение глаз разработчика по коду. Видео прилагается.
  • Итак, вы хотите тестировать [67] — Chris Hartjes, более известный как Grumpy Programmer, автор книги «Руководство по разработке тестируемых приложений на PHP» [68], написал статью, в которой дает ответы на самые часто задаваемые вопросы о том, как начать тестировать свои приложения и разрабатывать более качественный код. Он дает ряд рекомендаций и советов: как распознать нетестируемый код, почему следует перестать пользоваться инструментами без тестов и другие.
  • Что не так с PHP расширением Semaphore [69] — В своем посте автор пишет об обнаруженных проблемах в расширении Semaphore [70].
  • Эффективный рефакторинг [71] — В посте автор собрал несколько рекомендаций по рефакторингу PHP кода. В целом, советы достаточно банальны, но ознакомиться не будет лишним.
  • Введение в Bullet: функциональный микрофреймворк на PHP [72] — Bullet — это новый PHP микрофреймворк, в котором реализован функциональный подход к роутингу, что по мнению автора, позволяет избежать значительного дублирования кода. В посте изложены основные принципы и преимущества фреймворка, приведены небольшие примеры. Функциональный подход для PHP, впрочем, не уникален, советуем ознакомиться, например, с микрофреймворком Bluz [73].
  • Как стать веб-разработчиком [74] — Небезызвестный Ларри Ульман сделал подборку ресурсов на тему, как стать веб-разработчиком, естественно PHP-ориентированным.
  • Введение в паттерны проектирования [75] — Скринкаст, в котором автор делает обзор основных паттернов проектирования. Также вдогонку автор написал посты, более подробно раскрывающие суть паттернов Декоратор [76] и Заместитель (Proxy) [77].
  • Разделяемые интерфейсы [78] — В рамках создания стандартов PSR выдвигается идея описания некоторых стандартных интерфейсов. Суть идеи проста: использовать отдельные компоненты в различных библиотеках и фреймворках без необходимости написания каких-либо оболочек или прослоек. Автор, один из основателей PHP-FIG [23], в своем посте пишет о ряде проблем, связанных с таким подходом. В ответ был написан другой пост [79].
  • S-выражения на PHP [80], 2 [81], 3 [82], 4 [83], 5 [84], 6 [85] — Серия превосходных статей, в которых автор раскрывает суть лексического анализа и описывает создание интерпретатора LISP на PHP [86].
  • PHP non alpha numeric 7 and 6 char code [87] — В прошлом [88] выпуске дайджеста была ссылка [89] на интересный эксперимент, в котором автор пишет PHP скрипт без использования числовых и буквенных символов. У автора появился последователь, который демонстрирует пример кода выводящего «log(12)» и, написанного с использованием только лишь символов: $_=+(); Браво!

Ссылка [88] на предыдущий выпуск.
Материал подготовили dbritan [90], nesttor [91] и pronskiy [92]

Поздравляем всех с наступающим Новым годом! До встречи в 2013!

Автор: alexzfort

Источник [93]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/news/23754

Ссылки в тексте:

[1] PHP 5.4: http://php.net/releases/5_4_0.php

[2] несколько несовместимостей: http://php.net/manual/ru/migration54.incompatible.php

[3] ряд новых возможностей: http://php.net/manual/ru/migration54.new-features.php

[4] трейты: http://php.net/manual/ru/language.oop5.traits.php

[5] возросшая производительность: http://news.php.net/php.internals/57760

[6] альфа версия: http://php.net/archive/2012.php#id2012-12-21-1

[7] чего ждать: http://net.tutsplus.com/tutorials/php/what-to-expect-from-php-5-5/

[8] Zend Framework 2: http://framework.zend.com/blog/zend-framework-2-0-0-stable-released.html

[9] паттернами проектирования, применяемыми в ZF2: http://www.zend.com/en/webinar/Framework/70170000000bX3J-webinar-zf-2-patterns-20110330.flv

[10] тут: http://dev.ftrrtf.com/zf2/

[11] тут: http://tokarchuk.ru/2011/11/zend-framework-2-materials/

[12] пост: http://robertbasic.com/blog/contributing-to-zend-framework-2/

[13] Yii Framework: http://www.yiiframework.com/

[14] 3: http://habrahabr.ru/post/138084/

[15] больших: http://habrahabr.ru/post/148761/

[16] обновления: http://habrahabr.ru/post/149844/

[17] GitHub: https://github.com/yiisoft/yii

[18] конференция, посвященная Yii: http://yiiconf.ru/

[19] новые: http://www.packtpub.com/yii-rapid-application-development-hotshot/book

[20] книги: http://www.yiiframework.com/news/62/two-new-yii-books-published/

[21] хорошая новость: http://rmcreative.ru/blog/post/otodvinuta-data-kontsa-podderzhki-yii-1.1

[22] Приняты стандарты PSR-1 и PSR-2: http://paul-m-jones.com/archives/2420

[23] PHP Framework Interoperability Group: http://www.php-fig.org/

[24] PSR-0: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md

[25] PSR-1: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md

[26] PSR-2: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md

[27] тут: https://groups.google.com/forum/?fromgroups=#!forum/php-fig

[28] Phalcon: http://phalconphp.com/

[29] версии 0.8: http://blog.phalconphp.com/post/38117434637/phalcon-0-8-0-alpha-available

[30] высочайшей производительности: http://docs.phalconphp.com/en/latest/reference/benchmark/hello-world.html

[31] микро-фреймворками: http://docs.phalconphp.com/en/latest/reference/benchmark/micro.html

[32] документацией: http://phalconphp.com/documentation

[33] примера целого приложения: http://blog.phalconphp.com/post/37515965262/sample-application-album-orama

[34] Composer: http://getcomposer.org/

[35] 1: http://knpuniversity.com/screencast/composer

[36] 2: http://knplabs.com/blog/composer-level-up

[37] 3: http://phpmaster.com/php-dependency-management-with-composer/

[38] 4: http://habrahabr.ru/post/145946/

[39] Множественное наследование на PHP с помощью трейтов: http://gonzalo123.com/2012/12/17/multiple-inheritance-with-php-and-traits/

[40] Совместная многозадачность на PHP с использованием сопрограмм: http://nikic.github.com/2012/12/22/Cooperative-multitasking-using-coroutines-in-PHP

[41] перевод: http://habrahabr.ru/post/164173/

[42] Русские в PHP Core Team: “Язык растет подобно кораллу”: http://blogerator.ru/page/2012-php-core-team-intervju-zmievskij-malyshev-alshanetskij-eksperty-sravnenie

[43] Андрей Змиевский: http://twitter.com/a

[44] Стас Малышев: http://twitter.com/smalyshev

[45] Илья Альшанетский: http://twitter.com/iliaa

[46] Pleshner: http://habrahabr.ru/users/pleshner/

[47] Как устроены переменные в PHP: http://habrahabr.ru/post/162713/

[48] Как устроены массивы в PHP: http://habrahabr.ru/post/162685/

[49] Создаем REST приложения, используя микрофреймворк Slim: http://www.ibm.com/developerworks/xml/library/x-slim-rest/index.html

[50] 7 способов испортить BCrypt: http://blog.ircmaxell.com/2012/12/seven-ways-to-screw-up-bcrypt.html

[51] О библиотеках и зависимостях: http://webmozarts.com/2012/12/15/on-libraries-and-dependencies/

[52] связанность: http://ru.wikipedia.org/wiki/Связанность_(программирование)

[53] связность: http://ru.wikipedia.org/wiki/Связность_(программирование)

[54] Будущее ZF2: http://www.engineyard.com/podcast/future-of-php-zf2?eymktci=70170000000hHEC

[55] Evan Coury: https://twitter.com/EvanDotPro

[56] Ralph chindler: https://twitter.com/ralphschindler

[57] Matthew O'Phinney: https://twitter.com/mwop

[58] Rob Allen: https://twitter.com/akrabat

[59] Микрооптимизация на PHP: http://jason.pureconcepts.net/2012/12/php-micro-optimizations/

[60] серии: http://jason.pureconcepts.net/?s=%22better+php+developer%22

[61] этот: http://www.developerknowhow.com/micro-optimizing-in-php/

[62] Временные зоны, правильный способ: http://www.websanova.com/tutorials/php/timezones-the-right-way

[63] логика: http://youtu.be/-BVmrSG93XE

[64] адаптивный веб-дизайн: http://youtu.be/udOU0gagZqg

[65] тут: http://www.youtube.com/playlist?list=PLM-218uGSX3DQ3KsB5NJnuOqPqc5CW2kW

[66] Как мы читаем код?: http://blog.theincredibleholk.org/blog/2012/12/18/how-do-we-read-code/

[67] Итак, вы хотите тестировать: http://www.littlehart.net/atthekeyboard/2012/12/17/so-you-want-to-write-tests/

[68] «Руководство по разработке тестируемых приложений на PHP»: http://grumpy-testing.com/

[69] Что не так с PHP расширением Semaphore: http://jonathonhill.net/2012-12-08/what-is-wrong-with-phps-semaphore-extension/

[70] Semaphore: http://php.net/manual/en/book.sem.php

[71] Эффективный рефакторинг: http://www.brandonsavage.net/effective-refactoring-strategies/

[72] Введение в Bullet: функциональный микрофреймворк на PHP: http://www.vancelucas.com/blog/introducing-bullet-the-functional-php-micro-framework/

[73] Bluz: http://anton.shevchuk.name/php/php-framework-bluz/

[74] Как стать веб-разработчиком: http://www.larryullman.com/2012/12/19/how-to-become-a-web-developer-resources/

[75] Введение в паттерны проектирования: http://jmather.com/talks/2012-12-15/

[76] Декоратор: http://jmather.com/2012/12/21/about-the-decorator-pattern/

[77] Заместитель (Proxy): http://jmather.com/2012/12/15/about-the-proxy-pattern/

[78] Разделяемые интерфейсы: http://mwop.net/blog/2012-12-20-on-shared-interfaces.html

[79] пост: http://paul-m-jones.com/archives/4226/

[80] S-выражения на PHP: https://igor.io/2012/12/06/sexpr.html

[81] 2: https://igor.io/2012/12/07/sexpr-lexer.html

[82] 3: https://igor.io/2012/12/08/sexpr-reader.html

[83] 4: https://igor.io/2012/12/12/sexpr-eval.html

[84] 5: https://igor.io/2012/12/13/sexpr-forms.html

[85] 6: https://igor.io/2012/12/14/sexpr-special-forms.html

[86] интерпретатора LISP на PHP: https://github.com/igorw/ilias

[87] PHP non alpha numeric 7 and 6 char code: http://insert-script.blogspot.co.uk/2012/12/php-non-alpha-numeric-76-chars.html

[88] прошлом: http://habrahabr.ru/company/zfort/blog/162661/

[89] ссылка: http://www.thespanner.co.uk/2012/12/13/tweetable-php-non-alpha/

[90] dbritan: http://habrahabr.ru/users/dbritan/

[91] nesttor: http://habrahabr.ru/users/nesttor/

[92] pronskiy: http://habrahabr.ru/users/pronskiy/

[93] Источник: http://habrahabr.ru/post/164295/