Дайджест интересных новостей и материалов из мира PHP за последние две недели №16 (22.04.2013 — 06.05.2013)
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- Вышел в свет nginx-1.4.0 [1] — Обновился второй по популярности веб-сервер в мире. Год разработки принес множество нововведений, как например поддержка SPDY. Кроме того, код проекта переехал на Mercurial.
- PHP 5.5 beta 4 [2] — На этот раз последняя бета, а первый релиз-кандидат ожидается уже 9 мая.
- Phalcon 1.1 beta [3] — По ссылке хабраперевод с обзором новых возможностей набирающего популярность фреймворка, который реализован на C и поставляется в виде PHP-расширения.
- Вышел phpMyAdmin 4.0.0 [4] — В этой версии наконец-то не использованы HTML-фреймы, интерфейс построен с применением JavaScript и навигационная панель отображается в виде дерева.
- Релиз Silex 1.0.0 [5] — Тихо и незаметно состоялся релиз этого отличного микрофреймворка [6].
- Online PHP shell [7] — Веб-инструмент, который позволяет протестировать введенный PHP-код во всех версиях, начиная с 4.3.0 и заканчивая 5.5.0 alpha6.
- Доступно публичное превью Yii 2 [8] — Этого события действительно ждали многие! Слова излишни, спешим пощупать новую версию.
- Опыт работы с новой средой в Google App Engine [9] — Совсем скоро пройдет конференция Google I/O, на которой и будет продемонстрирована новая среда для App Engine. По ссылке — анонс доклада, в котором не упоминается, какую именно среду следует ожидать, однако некоторые считают, что это будет PHP, поскольку его поддержка востребована больше других [10].
PHP
- Событийно-ориентированный PHP [11] — Видеозапись отличнейшего доклада от автора React [12] — Igor Wielder [13]. Подробно рассказано о проблемах в реализации асинхронного окружения на PHP, структуре React и о других смежных темах. Рекомендуется к просмотру.
- PHP должен умирать, продолжение [14] — Не менее отличный пост в противовес предыдущему докладу. Автор продолжает свою мысль [15] и на примере React демонстрирует несостоятельность PHP в случае, когда скрипт должен работать долго и непрерывно.
- Хак синтаксиса PHP [16] — Хороший туториал, в котором на небольшом примере показано, как можно с минимальными знаниями C изменить синтаксис языка. Применив небольшой хак Zend Engine, автор меняет синтаксис объявления класса.
Материалы для обучения
- RBAC Авторизация в YII и LDAP [17] — Отличнейший хабрапост с исчерпывающим руководством по RBAC в Yii.
- Выполняем сомнительный PHP-код в песочнице [18] — На основе PHP-парсера [19] от Никиты Попова, автор поста реализовал отличную библиотеку PHPSandbox, которая позволяет выполнять любой PHP-код, не допуская вызова потенциально опасных конструкций. Любые функции при этом можно переопределить своими. В примере показано «экранирование» функции mail().
- Эпическая сага о переходе на HipHop [20] — Один из разработчиков из Tuenti (испанский клон Facebook) пишет об опыте миграции огромного проекта на HipHop [21], виртуальную машину, которая позволяет компилировать PHP-код в байт-код и затем выполнять его, а не интерпретировать при каждом выполнении.
- Введение в Ctype [22] — Небольшой туториал по функциям Ctype [23], предназначенным для проверки соответствия строки какому-либо типу. В посте о том, какие существуют функции, как работают и как их использовать.
- HTTP — протокол, который обязан знать веб-разработчик [24] — Продолжение серии об HTTP. В предыдущей части [25] была дана базовая информация о схеме работы, структура запросов, коды ответов, основные заголовки. На этот раз рассмотрена обработка соединений, аутентификация и HTTP-кэширование.
- Development Environment при помощи Vagrant и Chef [26] — Отличный хабрапост с детальной инструкцией по автоматическому конфигурированию рабочего окружения на виртуальной машине.
- Прощай CodeIgniter, здравствуй Laravel [27] —
Небольшое сравнение двух фреймворков: CodeIgniter и Laravel 3.
- Разбираемся со случайными значениями [28] — Небольшой пост о генераторах псевдослучайных чисел в PHP.
- Простое логирование исключений в ZF2 [29] — Еще один небольшой, но полезный пост, в котором показано, как с помощью Zend/Log и event listener можно легко организовать перехват и логирование исключений.
- Интервью с Jakub Vrana [30] — Автор Adminer [31] и соавтор PHP-мануала делится своим опытом разработки на PHP.
- Тест производительности популярных PHP-фреймворков [32] — Небольшой тест фреймворков среди которых Yii, CodeIgniter, Laravel, Symfony2, Zend Framework 2, Slim и другие. Результаты в целом предсказуемые, но автор призывает помнить о том, что задача фреймворков — это ускорить разработку, а для повышения производительности можно применить другие меры.
- Добавление ваших пакетов для Composer на Packagist [33] — Небольшой туториал для разработчиков, которые хотят включить свои библиотеки в список Packagist. В посте о составлении composer.json, работе с Packagist и синхронизации с GitHub.
- Почему тестирование делает проект успешным, и вы не можете позволить себе это отрицать [34] — Автор пишет о преимуществах применения тестирования.
- Тестирование контроллеров в Laravel [35] — В туториале подробно и на примерах показано, как изолировать тестируемые контроллеры и выполнять проверки.
- Список из 20 пунктов для предотвращения XSS в PHP [36] — Автор пишет о том, что XSS все еще один из самых часто эксплуатируемых видов уязвимостей. Именно поэтому он решил собрать список из 20 указаний, направленных на предотвращение XSS-атак.
- Абстрагируем API сервисов доставки [37] — Хороший туториал, в котором показано, как реализовать универсальный интерфейс для различных сервисов доставки с тем, чтобы при добавлении любого нового сервиса тратить минимально времени.
- Тестируем private и protected методы [38] — Маленькая заметка, о том как протестировать закрытые методы класса с помощью рефлексии.
- Laravel 4 – простой сайт с бэкендом [39] — Первая часть из серии туториалов по Laravel 4. Пост станет хорошей отправной точкой для желающих начать работу с этим фреймворком, лучшие практики учтены.
- Внедряем конфигурации в контроллер ZF2 [40] — Небольшой пост, в котором показано как можно добавить конфигурационную информацию в контроллер Zend Framework 2 с помощью дополнительного интерфейса и инициализатора из ServiceManager. Подробнее о подходе уже писали тут [41] .
- Контекстно-зависимая форма в Yii [42] — Хабрапост с примером реализации обозначенного кейса.
- Создаем безопасные шаблоны на Latte [43] — Обзор возможностей шаблонизатора Latte из фреймворка Nette [44].
- Функциональное тестирование с помощью Mink [45] — Хороший туториал, в котором автор демонстрирует использование Mink — расширения Behat. Установка, настройка и простые примеры.
- Тестируем и контрибьютим с помощью Composer [46] — В небольшом посте описано, как содействовать разработке сторонних библиотек и как Composer может в этом помочь.
- Тестирование «с душком» — Try/catch [47] — Автор отстаивает мнение о том, что использование try/catch блоков в тестах — это плохая практика. Вместо этого следует применять имеющиеся в PHPUnit возможности: @expectedException или setExpectedException(). В посте также несколько других рекомендаций по написанию модульных тестов.
- 3 вещи, которые я делаю на новых серверах [48] — В посте несколько рекомендаций по конфигурации сервера для обеспечения его безопасности.
- Как я выбирал легкий PHP фреймворк [49] — Хабрапост с кратким обзором альтернатив «большим» фреймворкам.
- Работаем с датой и временем в PHP [50] — В посте собрано несколько рецептов использования классов DateTime, DatePeriod и DateInterval.
- Chrome Logger — серверсайд логи в консоли хрома [51] — Отличный аналог FirePHP, но для Chrome.
- Пишем RESTful-приложения на ZF2 [52] — Запись вебинара от Matthew Weier O'Phinney — лидера проекта Zend Framework. Слайды тут (PDF) [53].
Ссылка [54] на предыдущий выпуск.
Автор: pronskiy
Источник [55]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/33733
Ссылки в тексте:
[1] Вышел в свет nginx-1.4.0: http://www.opennet.ru/opennews/art.shtml?num=36777
[2] PHP 5.5 beta 4: http://php.net/index.php#id2013-04-25-1
[3] Phalcon 1.1 beta: http://habrahabr.ru/post/177691/
[4] Вышел phpMyAdmin 4.0.0: http://www.phpmyadmin.net/home_page/news.php#phpMyAdmin_4.0.0_is_released
[5] Релиз Silex 1.0.0: https://github.com/fabpot/Silex
[6] микрофреймворка: http://silex.sensiolabs.org/
[7] Online PHP shell: http://3v4l.org/
[8] Доступно публичное превью Yii 2: http://habrahabr.ru/post/178681/
[9] Опыт работы с новой средой в Google App Engine: https://developers.google.com/events/io/sessions/383758862
[10] востребована больше других: http://code.google.com/p/googleappengine/issues/list
[11] Событийно-ориентированный PHP: http://youtu.be/MWNcItWuKpI
[12] React: http://reactphp.org/
[13] Igor Wielder: https://twitter.com/igorwesome
[14] PHP должен умирать, продолжение: http://software-gunslinger.tumblr.com/post/48215406921/php-is-meant-to-die-continued
[15] свою мысль: http://software-gunslinger.tumblr.com/post/47131406821/php-is-meant-to-die
[16] Хак синтаксиса PHP: http://systemsarchitect.net/hacking-php-syntax/
[17] RBAC Авторизация в YII и LDAP: http://habrahabr.ru/post/177873/
[18] Выполняем сомнительный PHP-код в песочнице: http://www.fieryprophet.com/blog/detail/sandboxing-untrusted-code-with-phpsandbox
[19] PHP-парсера: https://github.com/nikic/PHP-Parser
[20] Эпическая сага о переходе на HipHop: http://corporate.tuenti.com/en/dev/blog/the-epic-tale-of-moving-to-hiphop
[21] HipHop: https://github.com/facebook/hiphop-php/wiki
[22] Введение в Ctype: http://phpmaster.com/an-introduction-to-ctype-functions/
[23] Ctype: http://php.net/manual/en/book.ctype.php
[24] HTTP — протокол, который обязан знать веб-разработчик: http://net.tutsplus.com/tutorials/tools-and-tips/http-the-protocol-every-web-developer-must-know-part-2/
[25] предыдущей части: http://net.tutsplus.com/tutorials/tools-and-tips/http-the-protocol-every-web-developer-must-know-part-1/
[26] Development Environment при помощи Vagrant и Chef: http://habrahabr.ru/post/178797/
[27] Прощай CodeIgniter, здравствуй Laravel: http://phpmaster.com/goodbye-codeigniter-hello-laravel/
[28] Разбираемся со случайными значениями: http://phpmaster.com/better-understanding-random/
[29] Простое логирование исключений в ZF2: http://akrabat.com/zend-framework-2/simple-logging-of-zf2-exceptions/
[30] Интервью с Jakub Vrana: http://7php.com/php-interview-jakub-vrana/
[31] Adminer: http://www.adminer.org/
[32] Тест производительности популярных PHP-фреймворков: http://systemsarchitect.net/performance-benchmark-of-popular-php-frameworks/
[33] Добавление ваших пакетов для Composer на Packagist: http://phpmaster.com/listing-packages-on-packagist-for-composer/
[34] Почему тестирование делает проект успешным, и вы не можете позволить себе это отрицать: http://www.maltblue.com/software-development/testing/why-successful-software-includes-testing
[35] Тестирование контроллеров в Laravel: http://net.tutsplus.com/tutorials/php/testing-laravel-controllers/
[36] Список из 20 пунктов для предотвращения XSS в PHP: http://blog.astrumfutura.com/2013/04/20-point-list-for-preventing-cross-site-scripting-in-php/
[37] Абстрагируем API сервисов доставки: http://phpmaster.com/abstracting-shipping-apis/
[38] Тестируем private и protected методы: http://engineeredweb.com/blog/2013/php-testing-private-and-protected-methods/
[39] Laravel 4 – простой сайт с бэкендом: http://www.codeforest.net/laravel4-simple-website-with-backend-1
[40] Внедряем конфигурации в контроллер ZF2: http://akrabat.com/zend-framework-2/injecting-configuration-into-a-zf2-controller/
[41] тут: http://zftutorials.ru/blog/interface-injection-with-initializers-in-zend_servicemanager.html
[42] Контекстно-зависимая форма в Yii: http://habrahabr.ru/post/178303/
[43] Создаем безопасные шаблоны на Latte: https://gist.github.com/jiripudil/5426342
[44] Nette: http://nette.org/
[45] Функциональное тестирование с помощью Mink: http://techportal.inviqa.com/2013/05/02/functionally-testing-your-application-using-mink/
[46] Тестируем и контрибьютим с помощью Composer: http://philsturgeon.co.uk/blog/2013/05/testing-contributing-composer-packages
[47] Тестирование «с душком» — Try/catch: http://www.littlehart.net/atthekeyboard/2013/04/30/testing-smells-try-catch/
[48] 3 вещи, которые я делаю на новых серверах: http://simonholywell.com/post/2013/04/three-things-i-set-on-new-servers.html
[49] Как я выбирал легкий PHP фреймворк: http://habrahabr.ru/post/178833/
[50] Работаем с датой и временем в PHP: http://www.johnconde.net/blog/working-with-dates-and-times-in-php/
[51] Chrome Logger — серверсайд логи в консоли хрома: http://habrahabr.ru/post/177709/
[52] Пишем RESTful-приложения на ZF2: http://www.zend.com/en/webinar/Framework/70170000000c1Hw-RestfulZfApp-20130404.flv
[53] тут (PDF): http://static.zend.com/topics/ZF2REST-20130404.pdf
[54] Ссылка: http://habrahabr.ru/company/zfort/blog/177555/
[55] Источник: http://habrahabr.ru/post/178677/
Нажмите здесь для печати.