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

PHP-Дайджест № 76 – итоги 2015 года, подборка интересных ссылок + конкурс от компании JetBrains

PHP-Дайджест № 76 – итоги 2015 года, подборка интересных ссылок + конкурс от компании JetBrains - 1

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

Под катом вас также ждет конкурс [1] с призами от компании JetBrains [2].
С наступающим Новым годом! Приятного чтения.

PHP

Безусловно, главным событием уходящего года стал выпуск [3] новой мажорной версии интерпретатора PHP 7. Среди нововведений [4] такие долгожданные возможности, как исключения вместо фатальных ошибок, тайпхинтинг скаляров со строгим режимом, и, конечно, производительность сравнимая с HHVM.
Был завершен [5] цикл поддержки PHP 5.4, а ветка PHP 5.5 перешла [6] в режим поддержки безопасности.
Самому языку PHP исполнилось 20 лет [7]. 8 июня 1995 года, датский программист Расмус Лердорф анонсировал первый релиз проекта Personal Home Page Tools (PHP Tools), небольшого набора CGI-скриптов, написанных на языке Си. За 20 лет из небольшой поделки PHP вырос в инструмент, который используется более чем на 80% всех веб-сайтов в мире, а также на 5 из топ-10 сайтов.

PSR

В уходящем году группой PHP-FIG был принят стандарт PSR-7: HTTP Message Interface [8]. Благодаря этому в PHP мире появился унифицированный интерфейс взаимодействия с HTTP. Стандарт был применен в Guzzle, Symfony и других проектах, а также породил массу новых инструментов в виде middleware.
Кроме того, за год были подготовлены несколько черновиков новых стандартов:

И вот совсем недавно принят PSR-6: Caching Interface [13].

symfony

Популярный PHP-фреймворк в этом году обозначился релизами 2.7.0 LTS [14], 2.8 [14] и 3.0 [15]. А самому проекту Symfony исполнилось 10 лет.

laravel
В 2015 году вышел Laravel 5 [16], a также Laravel 5.1 LTS [17] — первый релиз фреймворка с долгосрочной поддержкой. Кроме того, разработчиком был представлен микрофреймворк Lumen [18].

Уходящий год можно по праву назвать годом релизов — свет увидели мажорные версии многих ветеранов PHP-мира:

В следующем году нас ждут другие новости, а пока, последняя подборка ссылок в этом году.

PHP-Дайджест № 76 – итоги 2015 года, подборка интересных ссылок + конкурс от компании JetBrains - 6 Новости и релизы

  • Laravel 5.2 [26] — Свежий релиз популярного фреймворка. Краткий обзор нововведений [27] habr.
  • PHP 7.0.1 [28] — Доступен первый корректирующий выпуск для ветки 7. В обновлении исправлено 35 ошибок [29].
  • Slim Framework v3.0.0 [30] — Состоялся мажорный релиз популярного микрофреймворка. Под капотом обновленная реализация DI, поддержка PSR-7, упрощенный код и многое другое.
  • WordPress 4.4 “Clifford” [31] — Свежий релиз популярной CMS примечателен тем, что включает в себя инфраструктуру REST API. Это первый этап интеграции плагина WP REST API [32] в ядро. В следующем релизе планируется реализовать ендпоинты.
  • PSR-6 Caching Interface [13] — После 4 лет работы и обсуждения принят стандарт для систем кэширования.

PHP-Дайджест № 76 – итоги 2015 года, подборка интересных ссылок + конкурс от компании JetBrains - 8 PHP

  • RFC: Number Format Separator [33] — Предлагается добавить возможность использования символа _ в качестве разделителя в числах, для повышения читаемости: $i = 197_823_459; // 197823459
  • RFC: Precise Session Management [34] — Обновленное предложение об улучшении механизма сессий.
  • RFC: Class Friendship [35] — Предлагается реализовать концепцию дружественных классов. Дружественный класс имеет доступ к private и protected полям класса, в котором он объявлен дружественным. Пример использования [36].
  • PHP 5 Support Timeline [37] — Предлагается продлить активную поддержку PHP 5.6 до года или двух вместо предусмотренных текущим планом [38] 8 месяцев.

PHP-Дайджест № 76 – итоги 2015 года, подборка интересных ссылок + конкурс от компании JetBrains - 9 Инструменты

  • Alroniks/dtms [39] — Расширение класса DateTime для работы с микросекундами в PHP. Прислал iklimchuk [40].
  • bocharsky-bw/FileNamingResolver [41] — Легковесная библиотека, позволяющая именовать файлы и директории по определенным правилам, используя для этого различные стратегии. Прислал bocharsky_bw [42].
  • rybakit/msgpack.php [43] — Cериализация в формате MessagePack на чистом PHP. Прислал rybakit [44].
  • ErikvdVen/php-gif [45] — Создание динамических GIF файлов по запросу. Прислал tkf [46].
  • Level-2/Transphporm [47] — Нестандартный подход для реализации шаблонизатора. Сам шаблон представлен в виде XHTML-файла, а подстановка данных происходит с помощью CSS-подобных селекторов. Пост [48] с описанием и примерами.
  • qandidate-labs/qandidate-toggle [49] — Библиотека реализует концепцию отключаемых фич. Подробнее о плюсах и минусах идеи писал Мартин Фаулер [50]. Туториал [51] по использованию.
  • Roave/BetterReflection [52] — Рефлексия без загрузки классов.
  • goaop/parser-reflection [53] — И еще одна реализация рефлексии без необходимости загрузки классов.
  • Sean-Der/Therac [54] — Отладчик для PHP с возможностью парной работы и синхронизации между несколькими браузерами.
  • cweiske/php-sqllint [55] — Проверка синтаксиса для SQL в виде инструмента командной строки.
  • ajbdev/cronlingo [56] — Представляет временные периоды, описанные естественным языком в виде корректных значений для crontab.
  • chrisgillis/slackwolf [57] — Бот мафии для Slack на PHP.
  • blackfireio/player [58] — Краулер. Может быть также применен в тестировании.
  • webmozart/expression [59] — Реализация паттерна Спецификация [60].
  • jasonhinkle/php-gpg [61] — Реализация GPG/PGP на чистом PHP.
  • wnmp-dev 1.1.0 [62] — nginx + MariaDB + PHP под Windows.
  • flint/Lurker [63] — Трекер изменений ресурсов. Альтернативное решение: jasonlewis/resource-watcher [64].
  • servo-php/fluidxml [65] — Библиотека для манипуляций над XML с текучим интерфейсом.
  • jenssegers/imagehash [66] — Перцептивный хеш для изображений — позволяет определить степень схожести картинок.
  • dkvashninbay/magento2plugin [67] — PhpStorm плагин для разработки под Magento 2. Прислал dkvashninbay [68].

PHP-Дайджест № 76 – итоги 2015 года, подборка интересных ссылок + конкурс от компании JetBrains - 10 Материалы для обучения

PHP-Дайджест № 76 – итоги 2015 года, подборка интересных ссылок + конкурс от компании JetBrains - 24 Аудио и видеоматериалы

PHP-Дайджест № 76 – итоги 2015 года, подборка интересных ссылок + конкурс от компании JetBrains - 28 Занимательное

Спасибо за внимание!

Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку [106].
Вопросы и предложения пишите на почту [107] или в твиттер [108].

Прислать ссылку [109]
Быстрый поиск по всем дайджестам [110]
Предыдущий выпуск [111]

Новогодний конкурс

PHP-Дайджест № 76 – итоги 2015 года, подборка интересных ссылок + конкурс от компании JetBrains - 31 [2]
В этом году нашему любимому языку исполнилось 20 лет. А что будет с PHP в будущем? Каким будет PHP если не через 20, то хотя бы через 5 лет?
Оставляйте ваши прогнозы в комментариях к этому посту. А авторы трех лучших, набравших наибольшее количество плюсов, получат отличные новогодние подарки. Компания JetBrains [2] наградит всех трёх победителей годовыми подписками на PhpStorm [112]. Результаты будут объявлены 4 января в 19:00 по московскому времени.
Давайте пофантазируем, каким будет мир PHP в 2020?
С наступающим вас Новым годом!

Автор: Zfort Group

Источник [113]


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

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

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

[1] конкурс: http://habrahabr.ru/company/zfort/blog/274153/#competition

[2] JetBrains: https://www.jetbrains.com/

[3] выпуск: http://php.net/archive/2015.php#id2015-12-03-1

[4] нововведений: https://github.com/tpunt/PHP7-Reference#features

[5] завершен: http://php.net/archive/2015.php#id2015-09-04-4

[6] перешла: http://news.php.net/php.internals/86784

[7] PHP исполнилось 20 лет: https://groups.google.com/forum/?hl=en#!original/comp.infosystems.www.authoring.cgi/PyJ25gZ6z7A/M9FkTUVDfcwJ

[8] PSR-7: HTTP Message Interface: http://www.php-fig.org/psr/psr-7/

[9] PSR-9: Security Disclosure: https://github.com/php-fig/fig-standards/blob/master/proposed/security-disclosure-publication.md

[10] PSR-10: Security Advisories: https://github.com/php-fig/fig-standards/blob/master/proposed/security-reporting-process.md

[11] PSR-11: Container Interface: https://github.com/container-interop/fig-standards/blob/master/proposed/container.md

[12] PSR-12: Extended Coding Style Guide: https://github.com/php-fig/fig-standards/blob/master/proposed/extended-coding-style-guide.md

[13] PSR-6: Caching Interface: http://www.php-fig.org/psr/psr-6/

[14] 2.7.0 LTS: http://symfony.com/blog/symfony-2-7-0-released

[15] 3.0: http://symfony.com/blog/symfony-3-0-0-released

[16] Laravel 5: http://habrahabr.ru/post/249911/

[17] Laravel 5.1 LTS: https://laravel-news.com/2015/04/laravel-5-1/

[18] Lumen: http://habrahabr.ru/post/255785/

[19] Drupal 8: https://www.drupal.org/news/drupal-8.0.0-released

[20] Magento 2: http://magento.com/blog/magento-news/new-era-commerce-innovation

[21] CodeIgniter 3.0: http://habrahabr.ru/post/254603/

[22] CakePHP 3.0.0: http://bakery.cakephp.org/articles/lorenzo/2015/03/22/cakephp_3_0_0_is_here

[23] Phalcon 2: http://habrahabr.ru/post/256047/

[24] PHPUnit 5.0: https://github.com/sebastianbergmann/phpunit/wiki/Release-Announcement-for-PHPUnit-5.0.0

[25] Guzzle 6.0: https://github.com/guzzle/guzzle/releases/tag/6.0.0

[26] Laravel 5.2: https://laravel-news.com/2015/12/laravel-5-2-is-released/

[27] Краткий обзор нововведений: http://habrahabr.ru/post/274065/

[28] PHP 7.0.1: http://php.net/index.php#id2015-12-17-1

[29] исправлено 35 ошибок: http://www.php.net/ChangeLog-7.php#7.0.1

[30] Slim Framework v3.0.0: http://www.slimframework.com/2015/12/07/slim-3.html

[31] WordPress 4.4 “Clifford”: https://wordpress.org/news/2015/12/clifford/

[32] WP REST API: https://wordpress.org/plugins/json-rest-api/

[33] RFC: Number Format Separator: https://wiki.php.net/rfc/number_format_separator

[34] RFC: Precise Session Management: https://wiki.php.net/rfc/precise_session_management

[35] RFC: Class Friendship: https://wiki.php.net/rfc/friend-classes

[36] Пример использования: https://gist.github.com/mdwheele/6d9b178dc25ebb829e4c#file-1sample-php-L3-L14

[37] PHP 5 Support Timeline: https://wiki.php.net/rfc/php56timeline

[38] текущим планом: http://php.net/supported-versions.php

[39] Alroniks/dtms: https://github.com/Alroniks/dtms

[40] iklimchuk: https://twitter.com/iklimchuk

[41] bocharsky-bw/FileNamingResolver: https://github.com/bocharsky-bw/FileNamingResolver

[42] bocharsky_bw: https://twitter.com/bocharsky_bw

[43] rybakit/msgpack.php: https://github.com/rybakit/msgpack.php

[44] rybakit: https://github.com/rybakit

[45] ErikvdVen/php-gif: https://github.com/ErikvdVen/php-gif

[46] tkf: http://habrahabr.ru/users/tkf/

[47] Level-2/Transphporm: https://github.com/Level-2/Transphporm

[48] Пост: http://www.sitepoint.com/transphporm-a-different-kind-of-template-engine/

[49] qandidate-labs/qandidate-toggle: https://github.com/qandidate-labs/qandidate-toggle

[50] писал Мартин Фаулер: http://martinfowler.com/bliki/FeatureToggle.html

[51] Туториал: http://www.sitepoint.com/feature-toggling-explained-with-qandidates-toggle/

[52] Roave/BetterReflection: https://github.com/roave/betterreflection

[53] goaop/parser-reflection: https://github.com/goaop/parser-reflection

[54] Sean-Der/Therac: https://github.com/sean-der/therac

[55] cweiske/php-sqllint: https://github.com/cweiske/php-sqllint

[56] ajbdev/cronlingo: https://github.com/ajbdev/cronlingo

[57] chrisgillis/slackwolf: https://github.com/chrisgillis/slackwolf

[58] blackfireio/player: https://github.com/blackfireio/player

[59] webmozart/expression: https://github.com/webmozart/expression

[60] Спецификация: https://ru.wikipedia.org/wiki/Спецификация_(шаблон_проектирования)

[61] jasonhinkle/php-gpg: https://github.com/jasonhinkle/php-gpg

[62] wnmp-dev 1.1.0: http://rmcreative.ru/blog/post/wnmp-dev-1.1.0

[63] flint/Lurker: https://github.com/flint/Lurker

[64] jasonlewis/resource-watcher: https://github.com/jasonlewis/resource-watcher

[65] servo-php/fluidxml: https://github.com/servo-php/fluidxml

[66] jenssegers/imagehash: https://github.com/jenssegers/imagehash

[67] dkvashninbay/magento2plugin: https://github.com/dkvashninbay/magento2plugin

[68] dkvashninbay: https://github.com/dkvashninbay

[69] Бенчмарк популярных проектов: PHP 7 против HHVM: http://www.midwesternmac.com/blogs/jeff-geerling/benchmarking-drupal-8-php-7-vs-hhvm

[70] другой бенчмарк: https://kinsta.com/blog/the-definitive-php-7-final-version-hhvm-benchmark/

[71] Случайность в PHP7 – Повезет ли мне?: http://habrahabr.ru/post/272509/

[72] Быстрый старт с PHP 7: https://www.youtube.com/watch?v=SDw5PiG3M9A&feature=youtu.be

[73] Туториал по аутентификации в Symfony 3 с помощью компонента Guard: http://www.sitepoint.com/easier-authentication-with-guard-in-symfony-3/

[74] Улучшенная сериализация с Symfony: http://devacademy.ru/posts/uluchshiennaia-sierializatsiia-s-symfony/

[75] Внедряем Bootstrap 3 Datepicker в SonataAdminBundle: http://habrahabr.ru/post/272513/

[76] Symfony2 Voters и Doctrine Filters на страже безопасности: http://habrahabr.ru/post/273477/

[77] Сервис на Yii2: Перенос переводов и консольных команд в модули: http://www.elisdn.ru/blog/81/seo-service-on-yii2-first-refactoring

[78] Тестирование в Yii 2.0 с помощью Codeception — Фикстуры данных: http://danaluther.blogspot.ru/2015/12/testing-in-yii-20-with-codeception.html

[79] phanan/koel: https://github.com/phanan/koel

[80] Туториал по использованию очередей задач на основе beastalkd и Pheanstalk: https://jtreminio.com/2015/12/queues-working-smart-faster-in-parallel/

[81] Принципы, которые формируют успешные фреймворки: http://www.capitalone.io/blog/successful-framework-philosophies/

[82] Запуск PHP кластера на AWS: http://blog.zend.com/2015/12/22/running-a-php-cluster-on-aws/#.Vnv0ypMrLyI

[83] New Composer Patterns: http://seld.be/notes/new-composer-patterns

[84] Туториал по созданию PHP-окружения с помощью Docker: http://tech.yappa.be/docker-php-development

[85] Как безопасно создавать, распространять и обновлять PHAR: https://mwop.net/blog/2015-12-14-secure-phar-automation.html

[86] Конфигурационные значения — это тоже зависимости: http://paul-m-jones.com/archives/6203

[87] Компоненты React.js и рендеринг на стороне сервера в PHP: https://www.symfony.fi/entry/introduction-to-react-js-components-and-server-side-rendering-in-php

[88] 2: https://www.symfony.fi/entry/testing-react-js-isomorphic-rendering-with-php-v8js-and-the-symfony-microkernel

[89] Разбираемся как PHP работает внутри: https://blackfire.io/docs/24-days/22-php-internals

[90] События жизненного цикла в Doctrine 2: http://devacademy.ru/posts/sobytiia-zhizniennogho-tsikla-v-doctrine-2/

[91] Восемь причин использовать PHPDoc: http://www.elisdn.ru/blog/80/some-reasons-to-learn-phpdoc

[92] Дайджест интересных материалов из мира Drupal #16 : http://habrahabr.ru/post/274101/

[93] Становимся профессиональными PHP разработчиками. Часть 1: Недостающее звено: http://habrahabr.ru/post/273421/

[94] Часть 2: Важность других людей: http://habrahabr.ru/post/273609/

[95] Часть 3: Работа в команде: http://habrahabr.ru/post/273955/

[96] Как запустить собственный торрент-поисковик на базе RuTracker?: http://habrahabr.ru/post/273777/

[97] Использование comet сервера для реализации простого чата: http://habrahabr.ru/company/comet-server/blog/273573/

[98] Подборка видеозаписей на тему безопасности в PHP: https://www.youtube.com/playlist?list=PLIBMpx9lXmO3wbuxtDEJYa_G_Xx-2BU1e

[99] Bulgaria PHP Conference 2015: http://www.bgphp.org/videos/

[100] PHP North West Conference 2015: https://www.youtube.com/playlist?list=PLmmVKoOOmweM3OlWzn2u4Ps-1ai3h_YPF

[101] Статистика используемых версий PHP: https://developerjack.com/blog/2015/12/09/php-version-roundup/

[102] PHP код в 2006 и 2016: https://evertpot.com/php-code-in-2006-and-2016/

[103] Клон Heroku в 100 строк кода на PHP.: https://gist.github.com/igorw/1d67f422689017e814a8

[104] 10 Years of Symfony!: https://www.youtube.com/watch?v=sjH-kV1Jb3I&feature=youtu.be

[105] Обои PHP 7 от Heroku: http://art.heroku.com/php7

[106] личку: http://habrahabr.ru/conversations/pronskiy/

[107] почту: mailto:roman@pronskiy.com

[108] твиттер: https://twitter.com/pronskiy

[109] Прислать ссылку: http://bit.ly/php-digest-add-link

[110] Быстрый поиск по всем дайджестам: http://pronskiy.github.io/php-digest/

[111] Предыдущий выпуск: http://habrahabr.ru/company/zfort/blog/272495/

[112] PhpStorm: https://www.jetbrains.com/phpstorm/

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