Дайджест интересных новостей и материалов из мира PHP за последние две недели №23 (29.07.2013 — 11.08.2013)
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- Вышел в свет WordPress 3.6 [1] — Свежий релиз под кодовым названием «Oscar» включает в себя новую тему, улучшенный механизм ревизий постов, блокирование и автосохранение постов, улучшенный редактор меню и многое другое. Полный список изменений тут [2].
Также были анонсированы изменения в процессах разработки и развертывания проекта WordPress [3].
- Phalcon 2.0 — будущее [4] — Команда разработчиков, в связи с быстрым ростом популярности фреймворка, предвидит возможные трудности. В будущем своевременная поддержка и реализация новых возможностей может стать проблемой, а помощь сторонних контрибьюторов ограничена ввиду сложности языка C, на котором написан фреймворк. Именно поэтому было решено разработать свой собственный язык, нечто среднее между PHP и С.
Встречайте Zephir! Язык поддерживает как статическую так и динамическую типизацию, весь код должен быть в классах, использование неймспейсов обязательно, знак $
в имени переменных не нужен. Подробнее читайте в посте по ссылке. Также можно взглянуть на код реализации компонента маршрутизации на Zephir [5].
Кстати, если вы еще не щупали Phalcon, но хотите попробовать, то это очень легко сделать. Просто установите VirtualBox, Vagrant и клонируйте репозиторий Vagrant-Phalcon [6], а затем запустите Vagrant.
- В core-команде PHP появился full-time разработчик [7] — Хорошая новость, будем надеятся это скажется на процессе разработки самым положительным образом.
- Вышла версия 0.4.0 фреймворка Go! AOP [8] — Обновилась замечательная библиотека, реализующая концепцию аспектно-ориентированного программирования в PHP. Среди нововведений, например, возможность перехватывать системные функции вроде
fopen
, array_keys
и любые другие.
- Не волнуйтесь по поводу BREACH [9] — На прошедшей совсем недавно конференции Black Hat была обнародована информация о новом виде атак — BREACH [10]. Это породило целую волну [11] постов [12] и обсуждений. По ссылке пост от Anthony Ferrara, в котором описана суть проблемы и способы защиты. Также автор призывает не паниковать и сфокусироваться на защите от XSS и SQL-инъекций — гораздо более вероятных путях взлома.
- Состоялся релиз phpDocumentor 2.0.0 [13] (и сразу 2.0.1 [14]) — Обновился самый популярный инструмент автоматической генерации документации для PHP.
PHP
Материалы для обучения
- Генератор ASCII-арта [19] — Отличный пост о том, как из имеющегося изображения с помощью PHP и GD сгенерировать ASCII-рисунок. Пример до [20] и после [21].
- Нет ничего нетестируемого: AspectMock в действии [22] — Тестировать синглтон? Легко! Отличная демонстрация применения AspectMock [23]. Также приведен пример из реальной жизни — тестирование логин-формы на Yii2.
- Первые шаги на HHVM [24] — В своем предыдущем посте [25] автор сделал обзор HHVM, а на этот раз приступает к работе с этим инструментом. В посте инструкция по установке виртуальной машины с помощью Vagrant, установке всех необходимых зависимостей и непосредственно по компиляции HHVM.
- 7 причин, по которым PHP обязан своей популярностью скорее WordPress'у, чем фреймворкам [26] — Недавно опубликованный рейтинг популярности языков программирования TIOBE [27] показал, что популярность PHP за последний год выросла. Авторы индекса связывали это с выходом Zend Framework 2, но автор поста по ссылке считает, что скорее WordPress делает популярным PHP, а не фреймворки.
- Простой инструмент для тестирования PHP приложений [28] — Автор хабрапоста реализовал CSTester [29] — действительно простой инструмент для тестирования, который, тем не менее, может быть очень полезен при необходимости тестирования небольших приложений.
- Структуры данных для PHP-разработчиков: графы [30] — Продолжение серии постов о структурах данных. Базовая информация о графах, примеры использования и реализация на PHP алгоритма Дейкстры для поиска кратчайшего пути.
- Stateless CSRF Tokens [31] — Обычно принято хранить CSRF-токены в сессии, но могут быть ситуации когда это затруднено. В таких случаях можно применить описанные автором подходы.
- От кода в стиле STUPID к SOLID [32] — Пост о том, как писать более качественный код — обзор концепций SOLID и STUPID.
- Сравнение Dependency Injection контейнеров [33] — Тест производительности популярных DI-контейнеров для PHP.
- Создаем простой чат с помощью HTML5 WebSocket и PHP [34] — Пост хоть и не последних двух недель, но интересный. Демонстрируется новая возможность из HTML5, код примера прилагается. Для реализации чего-то более сложного стоит обратить внимание на Ratchet [35].
- Генераторы в PHP [36] — В посте о том, как работают и когда использовать генераторы из PHP 5.5.
- Phalcon — очередной PHP-фреймворк? [37] — Небольшой обзор фреймворка с примерами кода.
- Тестовые задания для собеседования по PHP [38] — В качестве продолжения поста с вопросами для собеседования по PHP [39], было опубликовано несколько интересных задач для соискателей на вакансии PHP-разработчиков.
- Тестируем плагины для WordPress с помощью Codeception [40], 2 [41] — Серия отличных постов о тестировании в WordPress, ждем продолжения.
- Подбор мнемонических цитат для автомобильных и телефонных номеров [42] — Занимательный хабрапост с примером реализации на PHP.
- Профилирование PHP-кода с помощью XHProf [43] — Небольшая заметка о том, как установить и настроить XHProf.
- Push-уведомления для Android из PHP [44] — В посте автор описывает, как отправлять push-уведомления в Phonegap-приложение из PHP.
- Как узнать, что ваш PHP сайт был взломан [45] — Хабраперевод отличной статьи, в которой приведены способы обнаружения потенциально вредоносного PHP-кода на ваших серверах.
- Создаем SMS-сервис с помощью Twilio [46] — Хороший туториал по использованию облачного сервиса смс и телефонии Twilio в PHP. Также имеется пост об использовании Twilio на Google App Engine [47].
- Как улучшить навыки программирования на PHP [48] — Автор приводит подборку тем, которые должен освоить каждый разработчик. Приведены ссылки на материалы.
- Бенчмарк графических библиотек для PHP [49] — Сравнительный тест популярных библиотек: GD, Gmagick и Imagick.
- Как управлять фикстурами в PHP-проекте [50] — Автор описывает используемые им инструменты для работы с фикстурами.
- История фреймворка Laravel [51] — Laravel 1 появился в середине 2011 года, а в этом году уже дорос до 4 версии. В посте о том, как развивался фреймворк.
- EazyPhoto: уютный фотохостинг для своего сервера [52] — Хабрапост с описанием реализации альтернативы Flickr и любым другим хранилищам фотографий.
- Многопоточность в PHP с помощью pthreads [53] — В последнее время часто упоминается инструмент pthreads [54], решающий вопрос многопоточности на PHP. Но автор инструмента замечает, что люди, пишущие о нем, не очень-то подкованы в вопросах многопоточности и параллелизма, поэтому своим постом на Reddit он решил внести некоторую ясность.
- Августовский выпуск журнала Web & PHP [55] — Как всегда в свежем выпуске несколько интересных статей на тему PHP и веб-программирования, например, обзор [56] ToroPHP [57] — минималистичного роутера для разработки RESTful приложений и API.
- Простое создание миниатюр и хранение их на Amazon S3 [58] — Небольшой хабрапост с описанием решения [59] поставленной задачи.
- Установка Nginx + php-FPM + apc + MariaDB on Debian 7 — идеальный LEMP-сервер [60] — Инструкция по установке и первичной настройке обозначенного набора.
- Использование cURL для удаленных запросов [61] — Туториал по использованию cURL в PHP для начинающих.
- Взаимодействие php-soap на linux с авторизацией по сертификатам с использованием алгоритмов ГОСТ [62] — Использование алгоритмов шифрования ГОСТ в PHP, как оказалось, не тривиальная задача, требующая в частности правки и перекомпиляции интерпретатора. В хабрапосте подробно описано решение.
- Очереди сообщений, AMQP, RabbitMQ [63] — В статье идет речь о простых очередях сообщений, построенных на основе БД, стандарте AMQP и системе управления очередями RabbitMQ
- DDD с помощью Symfony2 [64] — В посте описана применяемая автором структура директорий, а также подход Code First в сравнении с классическим Database First, на примере создания небольшого REST-приложения на Symfony в концепции проблемно-ориентированного проектирования [65] .
- Пример сегментации изображений средствами PHP [66] — Еще один хороший хабрапост с подробным описанием решения специфической задачи на PHP. В автоматическом режиме предлагается делить изображение на логические фрагменты.
- Закон Деметры. Нужен ли? [67] — Весьма интересное обсуждение в разделе Q&A на Хабре.
- В поисках самого востребованного языка программирования [68] — Интересный пост с обзором различных рейтингов и методик оценки популярности языков программирования. Также приведен прогноз на 2013-2014 годы.
- Использование встроенного SSH-клиента в PhpStorm [69] — Отличнейшая IDE обзавелась еще одной полезной возможностью в виде встроенного SSH-терминала.
- Ralph Johnson и Joe Armstrong о состоянии ООП [70] — Небольшое интервью с одним из банды авторов той самой книги о паттернах проектирования [71] и создателем языка Erlang, в котором они говорят о прошлом и будущем ООП.
Ссылка [72] на предыдущий выпуск.
Автор: pronskiy
Источник [73]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/40693
Ссылки в тексте:
[1] Вышел в свет WordPress 3.6: http://wordpress.org/news/2013/08/oscar/
[2] тут: http://codex.wordpress.org/Version_3.6
[3] изменения в процессах разработки и развертывания проекта WordPress: http://make.wordpress.org/core/2013/08/06/a-new-frontier-for-core-development/
[4] Phalcon 2.0 — будущее: http://blog.phalconphp.com/post/57161129440/phalcon-2-0-the-future
[5] код реализации компонента маршрутизации на Zephir: https://github.com/phalcon/zephir/blob/master/test/router.zep
[6] Vagrant-Phalcon: https://github.com/slogsdon/vagrant-phalcon
[7] В core-команде PHP появился full-time разработчик: http://news.php.net/php.internals/68351
[8] Вышла версия 0.4.0 фреймворка Go! AOP: https://github.com/lisachenko/go-aop-php/releases/tag/0.4.0
[9] Не волнуйтесь по поводу BREACH: http://blog.ircmaxell.com/2013/08/dont-worry-about-breach.html
[10] BREACH: http://breachattack.com/
[11] волну: http://blog.phalconphp.com/post/57552534494/security-update-breach-php-and-phalcon
[12] постов: http://blog.astrumfutura.com/2013/08/breach-attacks-extracting-https-encrypted-data-in-under-a-minute-without-encryption-cracking/
[13] Состоялся релиз phpDocumentor 2.0.0: https://github.com/phpDocumentor/phpDocumentor2/releases/tag/v2.0.0
[14] 2.0.1: https://github.com/phpDocumentor/phpDocumentor2/releases/tag/v2.0.1
[15] Что нового в PHP 5.5: http://cvuorinen.net/2013/08/whats-new-in-php-5-5
[16] Какие символы допустимы в именах переменных, методов, классов в PHP?: http://stackoverflow.com/questions/17973357/what-are-the-valid-characters-in-php-variable-method-class-etc-names#17973365
[17] RFC: Constructor argument promotion: https://wiki.php.net/rfc/constructor-promotion
[18] Битва: котячий kPHP против американского HipHop’а: http://blogerator.ru/page/kotjachij-kphp-protiv-amerikanskogo-hiphop-vkontakte-php-mtproto-hiload
[19] Генератор ASCII-арта: http://fuzzicode.com/create/ascii-art-generator/
[20] до: http://fuzzicode.com/wp-content/uploads/2013/08/image.png
[21] после: http://fuzzicode.com/wp-content/uploads/2013/08/Untitled-1.png
[22] Нет ничего нетестируемого: AspectMock в действии: http://codeception.com/07-31-2013/nothing-is-untestable-aspect-mock.html
[23] AspectMock: https://github.com/Codeception/AspectMock
[24] Первые шаги на HHVM: http://coderoncode.com/2013/07/27/first-steps-on-hhvm.html
[25] своем предыдущем посте: http://coderoncode.com/2013/07/24/introduction-hhvm.html
[26] 7 причин, по которым PHP обязан своей популярностью скорее WordPress'у, чем фреймворкам: http://www.phpclasses.org/blog/post/215-7-Reasons-Why-WordPress-Made-PHP-Popular-not-PHP-Frameworks.html
[27] рейтинг популярности языков программирования TIOBE: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
[28] Простой инструмент для тестирования PHP приложений: http://habrahabr.ru/post/188342/
[29] CSTester: https://github.com/nazar-pc/CSTester
[30] Структуры данных для PHP-разработчиков: графы: http://phpmaster.com/data-structures-4/
[31] Stateless CSRF Tokens: https://josephscott.org/archives/2013/07/stateless-csrf-tokens/
[32] От кода в стиле STUPID к SOLID: http://williamdurand.fr/2013/07/30/from-stupid-to-solid-code/
[33] Сравнение Dependency Injection контейнеров: http://happyaccidents.me/revisiting-benchmarking-dependency-injection-containers/
[34] Создаем простой чат с помощью HTML5 WebSocket и PHP: http://www.saaraan.com/2013/05/chat-using-websocket-php-socket
[35] Ratchet: http://socketo.me/
[36] Генераторы в PHP: http://phpmaster.com/generators-in-php/
[37] Phalcon — очередной PHP-фреймворк?: http://phpmaster.com/phalconphp-yet-another-php-framework/
[38] Тестовые задания для собеседования по PHP: http://phpixie.com/blog/test-tasks-for-php-interviews-that-developers-will-enjoy-solving/
[39] вопросами для собеседования по PHP: http://phpixie.com/blog/questions-for-php-interview/
[40] Тестируем плагины для WordPress с помощью Codeception: http://codeception.com/07-24-2013/testing-wordpress-plugins.html
[41] 2: http://codeception.com/08-01-2013/testing-wordpress-plugins-2.html
[42] Подбор мнемонических цитат для автомобильных и телефонных номеров: http://habrahabr.ru/post/188370/
[43] Профилирование PHP-кода с помощью XHProf: http://www.geekyboy.com/archives/718
[44] Push-уведомления для Android из PHP: http://gonzalo123.com/2013/08/05/sending-android-push-notifications-from-php-to-phonegap-applications/
[45] Как узнать, что ваш PHP сайт был взломан: http://habrahabr.ru/post/188878/
[46] Создаем SMS-сервис с помощью Twilio: http://phpmaster.com/create-an-sms-based-stock-quote-service-with-twilio/
[47] пост об использовании Twilio на Google App Engine: http://googledevelopers.blogspot.com/2013/08/getting-started-with-twilio-on-google.html
[48] Как улучшить навыки программирования на PHP: http://systemsarchitect.net/how-to-improve-php-programming-skills/
[49] Бенчмарк графических библиотек для PHP: http://habrahabr.ru/post/188666/
[50] Как управлять фикстурами в PHP-проекте: http://www.theodo.fr/blog/2013/08/managing-fixtures/
[51] История фреймворка Laravel: http://maxoffsky.com/code-blog/history-of-laravel-php-framework-eloquence-emerging/
[52] EazyPhoto: уютный фотохостинг для своего сервера: http://habrahabr.ru/post/188968/
[53] Многопоточность в PHP с помощью pthreads: http://www.reddit.com/r/PHP/comments/1jo517/multithreading_in_php_with_pthreads/
[54] pthreads: https://github.com/krakjoe/pthreads
[55] Августовский выпуск журнала Web & PHP: http://webandphp.com/August2013
[56] обзор: http://webandphp.com/GettingStartedwithToroPHP-166084
[57] ToroPHP: https://github.com/anandkunal/ToroPHP
[58] Простое создание миниатюр и хранение их на Amazon S3: http://habrahabr.ru/post/189504/
[59] решения: https://github.com/wolflingorg/s3thumb
[60] Установка Nginx + php-FPM + apc + MariaDB on Debian 7 — идеальный LEMP-сервер: http://www.binarytides.com/install-nginx-php-fpm-mariadb-debian/
[61] Использование cURL для удаленных запросов: http://phpmaster.com/using-curl-for-remote-requests/
[62] Взаимодействие php-soap на linux с авторизацией по сертификатам с использованием алгоритмов ГОСТ: http://habrahabr.ru/post/189352/
[63] Очереди сообщений, AMQP, RabbitMQ: http://www.phphighload.com/2013/08/amqp-rabbitmq.html
[64] DDD с помощью Symfony2: http://williamdurand.fr/2013/08/07/ddd-with-symfony2-folder-structure-and-code-first/
[65] проблемно-ориентированного проектирования: http://ru.wikipedia.org/wiki/Проблемно-ориентированное_проектирование
[66] Пример сегментации изображений средствами PHP: http://habrahabr.ru/post/189068/
[67] Закон Деметры. Нужен ли?: http://habrahabr.ru/qa/44822/
[68] В поисках самого востребованного языка программирования: http://blogerator.ru/page/samij-vostrebovannij-populjarnij-jazyka-programmirovanija-rejting-tiobe-pypl-redmonk-statistika
[69] Использование встроенного SSH-клиента в PhpStorm: http://confluence.jetbrains.com/display/PhpStorm/Using+the+PhpStorm+built-in+SSH+terminal+and+remote+SSH+external+tools
[70] Ralph Johnson и Joe Armstrong о состоянии ООП: http://www.infoq.com/interviews/johnson-armstrong-oop
[71] книги о паттернах проектирования: http://ru.wikipedia.org/wiki/Design_Patterns
[72] Ссылка: http://habrahabr.ru/company/zfort/blog/188156/
[73] Источник: http://habrahabr.ru/post/189734/
Нажмите здесь для печати.