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

Дайджест интересных новостей и материалов из мира PHP за последние две недели №5 (17.11.2012 — 30.11.2012)

Дайджест интересных новостей и материалов из мира PHP за последние две недели №5 (17.11.2012 — 30.11.2012)

Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

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

Дайджест интересных новостей и материалов из мира PHP за последние две недели №5 (17.11.2012 — 30.11.2012) Новости и релизы

Дайджест интересных новостей и материалов из мира PHP за последние две недели №5 (17.11.2012 — 30.11.2012) PHP

  • PHP the Nice Way [6] — Отличнейший пост, в котором автор делится своим опытом программирования на PHP, рассказывает о своих ошибках и открытиях. Пост полон полезных советов и рекомендаций.
  • Используйте лучший API в вашем PHP MySQL приложении [7] — На данный момент в PHP доступно три интерфейса для работы с MySQL, а именно: ext/mysql, ext/mysqli и PDO_MySQL. В php.internals [8] разгорелось обсуждение о необходимости исключения морально устаревшего ext/mysql из поставки по-умолчанию и переносе в PECL. В своем посте автор подробно раскрывает эту тему, приводит тщательное всестороннее сравнение трех интерфейсов.
  • PHP: Эра тестирования [9] — По мнению автора, за последнее десятилетие PHP сообщество прошло через несколько важных этапов: переход к ООП, безопасность веб-приложений, использование фреймворков, стандарты кода, и на данный момент проходит этап, который можно назвать эрой тестирования.
  • If it's not written in PHP it's irrelePHPant! [10] — Автор не без доли юмора призывает PHP сообщество к активному написанию собственных инструментов исключительно на PHP.
  • 3 странных факта из PHP, о которых вы могли не знать [11] — Если вы программируете на PHP достаточно долго, то для вас этот пост будет просто напоминанием о неочевидном поведении вещественных чисел в PHP или об «эффектах» нестрогой типизации. Однако если вы новичек, то эти факты могут быть открытием.
  • PHP Trends [12] — Небольшое приложение, которое показыает список PHP библиотек, фреймворков и т.д. (репозиториев на GitHub), отсортированных по популярности. В качестве индекса популярности используется число добавивших репозиторий в избранное.
  • Упрощенное хэширование паролей [13] — Некоторое время назад Anthony Ferrara предложил включить стандартизированный интерфейс хэширования в ядро PHP. Предложение было поддержано голосованием [14], а затем реализовано и уже включено в версии PHP 5.5. Автор предложения в своем посте рассказывает подробности нового функционала и отвечает на самые частозадаваемые вопросы по этому поводу.
  • Запускаем программы командной строки как функции в PHP [15] — Автор был вдохновлен Питоновской sh [16] и создал нечто подобное для PHP. Используя разработанный им инструмент можно делать вот такие вещи, например: $sh->ssh(array('myserver.com', '-p' => 1393))->tail(array("/var/log/dumb_daemon.log", 'n' => 100)); и это будет равносильно вызову: ssh myserver.com -p 1393 tail /var/log/dumb_daemon.log -n 100 из командной строки.

Дайджест интересных новостей и материалов из мира PHP за последние две недели №5 (17.11.2012 — 30.11.2012) Материалы для обучения

  • Мигрируем на Dependency Injection [17] — Интересный пост, в котором автор подробно описывает процесс изменения кода небольшого приложения, которое не использует DI к такому, которое использует.
  • Создаем собственный фреймворк на основе компонентов Symfony2 [18] — В 11 [18] выпуске автор расскажет нам о возможностях HttpKernelInterface, добавляя все большее количество listeners на запрос. Это очень удобный способ протестировать и отладить отдельную фичу, а потом просто интегрировать её во flow запроса, там где необходимо. Предыдущие выпуски: 1 [19], 2 [20], 3 [21], 4 [22], 5 [23], 6 [24], 7 [25], 8 [26], 9 [27], 10 [28]
  • Принцип единственной обязанности [29] — Продолжаем рассматривать принципы SOLID. [30] На этот раз речь пойдет о букве «S». Для начала автор в посте демонстрирует нарушение принципа на примере класса, который кроме обработки данных пользователя, также реализует функционал доступа к базе данных. Затем автор рефакторит код, разбивая один класс на несколько новых, каждый со своими обязанностями.
  • Суп из парадигм [31] — В этом небольшом видеоролике небезызвестный деятель PHP сообщества — Anthony Ferrara рассказывает о разнице между процедурным, объектно-ориентированном и функциональным программированием и о том, как они пересекаются в коде.
  • Кодирование [32] — Еще один видеоролик от Anthony Ferrara, на этот раз о кодировании информации.
  • Как делать вид, что вам не безразлична ваша работа [33] — Интересный доклад о том, что делать (PHP) разработчику для собственного развития.
  • Что нового в ZendForm появится с версией ZF 2.1 [34] — Перевод статьи Michaël Gallego [35] об обновлениях компонента ZendForm в ZF 2.1 (новые элементы, менеджер элементов, короткие имена, зависимости и полностью обновленная загрузка файлов). Оригинал. [36]
  • Вопросы и мысли новичка о рендеринге на клиентской стороне [37] — Автор впервые задается вопросом рендеринга на клиентской стороне, сравнивая рендеринг на сервере и клиенте, а также анализируя сложности, которые могут возникать при рендеринге контента на клиентской стороне. Предлагает решение выявленных проблем и отвечает на вопрос, когда можно использовать рендеринг на клиентской стороне и как для этого можно использовать ZF2.
  • Отладка и профилирование на PHP с помощью Xdebug [38] — Подробный туториал о использовании базовых возможностей Xdebug. В качестве IDE для отладки использован NetBeans.
  • Улучшение производительности Zend Framework 2 [39] — Пока еще небольшой список советов и трюков, направленных на улучшение производительности приложений на ZF2. Автор планирует постоянно пополнять список, собирая советы и трюки из разных источников в одном месте.
  • Создание класса корзины покупок [40] — Подробный туториал по реализации корзины покупок в ООП стиле от Ларри Ульмана. [41]
  • Не тяните ваши зависимости [42] — В этой статье автор снала объясняет, почему в некоторых случаях необходимо тянуть зависимости в Symfony2 и затем — почему этого не стоит делать в остальных случаях.
  • Отделение кода приложения от фреймворка [43] — Автор пишет о том, что в большинстве случаев код приложения сильно зависит от фреймворка, а также приводит рекомендации по тому, как максимально ослабить такие связи.
  • Конфигурация Nginx для Symfony2 [44] — Расстановка точек над конфигурацией NGINX для Symfony2 приложений.
  • PHP.Kryptik.AB – Дайте мне ваш FTP! [45] — В посте речь идет о давно гуляющей по сети малвари, которая угоняет пароли от FTP серверов и затем, подключившись к ним, встраивает вредоносный код в найденные PHP скрипты. Автор рассказывает, как происходит заражение, как обеззаразить сайт и как не допустить повторного заражения.
  • Валидация и фильтрация на PHP [46] — Тема стара, и тем не менее, автор рассматривает типичные угрозы безопасности, рассказывает о том, что такое валидация. Приводит пример реализации с использованием стандартного расширения для фильтрации данных [47] касается реализации на Symfony 2, Laravel 3, CakePHP 2 а также делится своим собственным модулем для фильтрации данных.
  • Геттеры и сеттеры — магия, которая должна знать свое место [48] — Автор рассказывает, почему считает использование геттеров и сеттеров обычным способом не самой хорошей идеей, а также приводит пример когда они были действительно необходимы.
  • Строго типизированный JSON на PHP [49] — Продолжение предыдущего поста о необычном использовании сеттеров.
  • Создаем конструктор запросов на PHP [50] — Небольшая заметка о создании простого конструктора запросов.
  • Ваше первое знакомство с Phalcon [51], 2 [52] — Появившись совсем недавно, этот фреймфорк стремительно набирает популярность. Причины понятны: Phalcon написан на C и поставляется в виде нативного расширения для PHP, отсюда высочайшая производительность. Статья представляет собой отличный туториал от авторов фреймворка. В первой части описание и обзор возможностей, во второй — простое приложение-блог. Также по теме доступна статья на Хабре [53] Дайджест интересных новостей и материалов из мира PHP за последние две недели №5 (17.11.2012 — 30.11.2012)
  • Zend Framework Day 2012 [54] — Совсем недавно в Киеве прошла конференция, посвященная Zend Framework и PHP. На сайте конференции доступны слайды докладов. Также имеется интересный отчет. [55]

Дайджест интересных новостей и материалов из мира PHP за последние две недели №5 (17.11.2012 — 30.11.2012) CMS/CMF

  • TYPO3 CMS 6.0 released [56] — Вышла новая версия некогда популярной, но в последнее время непрерывно теряющей позиции, CMS. Посмотрим, может свежая версия изменит тенденцию.
  • Релизы плагинов для WordPress

    • bbPress [57] — плагин позволяет создать полноценный форум на базе WordPress.
    • Knews Multilingual Newsletters [58] — позволяет создавать качественные мультиязычные подписки.
    • WP Subscriber Form [59] — добавляет форму подписки в контент.
    • BackWPup [60] — позволяет создавать резервные копии базы данных и файлов вашего WordPress сайта.
    • Theme-Check [61] — инструмент для разработчиков тем, позволяет автоматически проверять тему на соответствие стандартам. [62]
    • WP SlimStat [63] — простой, но мощный плагин аналитики.
    • Force Password Change [64] — требует от пользователя смены пароля во время первого входа на сайт.
    • Batcache [65] — позволяет использовать Memcached для кэширования отрендеренных страниц.
    • Edit Flow [66] — предоставляет кастомные статусы, календарь, редакторские комментарии и другие возможности для облегчения совместного использования сайта на WordPress.
    • No Weak Passwords [67] — запрещает использование слабых паролей.
    • Automatic Updater [68] — автообновление плагинов, тем и ядра.
    • BuddyPress Media [69] — позволяет пользователям загружать и делиться изображениями, видео и аудио с другими участниками социальной сети, построенной на BuddyPress [70].
    • Ice Visual Revisions [71] — добавляет в редактор возможность визуального отображения разницы между ревизиями.

И напоследок

Ссылка [73] на предыдущий выпуск.
Материал подготовили dbritan [74], nesttor [75] и pronskiy [76]

Автор: alexzfort

Источник [77]


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

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

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

[1] Релизы PHP 5.4.9 и PHP 5.3.19: http://www.php.net/archive/2012.php#id2012-11-22-1

[2] Релиз MongoDB PHP Driver 1.3.0: http://blog.mongodb.org/post/36666163412/introducing-mongoclient

[3] посте.: http://derickrethans.nl/mongoclient.html

[4] Symfony 1.4.20: http://symfony.com/blog/security-release-symfony-1-4-20-released

[5] 2.0.19 и 2.1.4: http://symfony.com/blog/security-release-symfony-2-0-19-and-2-1-4

[6] PHP the Nice Way: http://rarestblog.com/blog/2012/11/20/php-the-nice-way/

[7] Используйте лучший API в вашем PHP MySQL приложении: http://blog.ulf-wendel.de/2012/php-mysql-why-to-upgrade-extmysql/

[8] php.internals: http://news.php.net/php.internals

[9] PHP: Эра тестирования: http://benramsey.com/blog/2012/11/the-era-of-php-testing/

[10] If it's not written in PHP it's irrelePHPant!: http://edorian.posterous.com/if-its-not-written-in-php-its-irrelephpant

[11] 3 странных факта из PHP, о которых вы могли не знать: http://phpmaster.com/3-strange-php-facts-you-may-not-know/

[12] PHP Trends: http://phptrends.com/

[13] Упрощенное хэширование паролей: http://blog.ircmaxell.com/2012/11/designing-api-simplified-password.html

[14] голосованием: https://wiki.php.net/rfc/password_hash

[15] Запускаем программы командной строки как функции в PHP: http://gonzalo123.com/2012/11/19/allow-to-call-shell-programs-as-functions-with-php/

[16] sh: http://amoffat.github.com/sh/

[17] Мигрируем на Dependency Injection: http://blog.everymansoftware.com/2012/11/migrating-to-dependency-injection.html

[18] Создаем собственный фреймворк на основе компонентов Symfony2: http://protalk.me/episode-11-creating-own-php-framework-using-symfony2-components

[19] 1: http://protalk.me/episode-1-creating-own-php-framework-using-symfony2-components

[20] 2: http://protalk.me/episode-2-creating-own-php-framework-using-symfony2-components

[21] 3: http://protalk.me/episode-3-creating-own-php-framework-using-symfony2-components

[22] 4: http://protalk.me/episode-4-creating-own-php-framework-using-symfony2-components

[23] 5: http://protalk.me/episode-5-creating-own-php-framework-using-symfony2-components

[24] 6: http://protalk.me/episode-6-creating-own-php-framework-using-symfony2-components

[25] 7: http://protalk.me/episode-7-creating-own-php-framework-using-symfony2-components

[26] 8: http://protalk.me/episode-8-creating-own-php-framework-using-symfony2-components

[27] 9: http://protalk.me/episode-9-creating-own-php-framework-using-symfony2-components

[28] 10: http://protalk.me/episode-10-creating-own-php-framework-using-symfony2-components

[29] Принцип единственной обязанности: http://phpmaster.com/the-single-responsibility-principle/

[30] SOLID.: http://ru.wikipedia.org/wiki/SOLID_(объектно-ориентированное_программирование)

[31] Суп из парадигм: http://www.youtube.com/watch?v=CV4vPsEizJM&feature=youtu.be

[32] Кодирование: https://www.youtube.com/watch?v=RLmuFlDygn0

[33] Как делать вид, что вам не безразлична ваша работа: http://jmather.com/talks/2012-11-17/

[34] Что нового в ZendForm появится с версией ZF 2.1: http://zftutorials.ru/blog/discover-whats-coming-for-zendform-in-zf-2-1.html

[35] Michaël Gallego: http://www.michaelgallego.fr/blog/

[36] Оригинал.: http://www.michaelgallego.fr/blog/2012/11/09/discover-whats-coming-for-zendform-in-zf-2-1/

[37] Вопросы и мысли новичка о рендеринге на клиентской стороне: http://www.michaelgallego.fr/blog/2012/11/26/questions-and-thoughts-about-client-side-rendering-from-a-zf-2-developer/

[38] Отладка и профилирование на PHP с помощью Xdebug: http://phpmaster.com/debugging-and-profiling-php-with-xdebug/

[39] Улучшение производительности Zend Framework 2: http://hounddog.github.com/blog/performance-in-zend-framework-2/

[40] Создание класса корзины покупок: http://www.peachpit.com/articles/article.aspx?p=1962481

[41] Ларри Ульмана.: http://www.larryullman.com/

[42] Не тяните ваши зависимости: http://www.testically.org/2012/11/28/dont-pull-your-dependencies/

[43] Отделение кода приложения от фреймворка: http://phpmaster.com/living-apart-together-decoupling-code-and-framework/

[44] Конфигурация Nginx для Symfony2: http://ihaveabackup.net/2012/11/17/nginx-configuration-for-symfony2/

[45] PHP.Kryptik.AB – Дайте мне ваш FTP!: http://blog.twelvecode.com/2012/11/18/php-kryptik-ab-give-me-your-ftp/

[46] Валидация и фильтрация на PHP: http://foaa.de/blog/2012/11/27/php-validation-and-sanitization/

[47] расширения для фильтрации данных: http://www.php.net/manual/en/intro.filter.php

[48] Геттеры и сеттеры — магия, которая должна знать свое место: http://rarestblog.com/blog/2012/11/23/getters-and-setters/

[49] Строго типизированный JSON на PHP: http://rarestblog.com/blog/2012/11/23/json-plus-static-php-types-set/

[50] Создаем конструктор запросов на PHP: http://rarestblog.com/blog/2012/11/22/building-a-query-builder-in-php/

[51] Ваше первое знакомство с Phalcon: http://blog.phalconphp.com/post/36646589046/tutorial-your-first-encounter-with-phalcon-part-1

[52] 2: http://blog.phalconphp.com/post/36648855158/tutorial-your-first-encounter-with-phalcon-part-2

[53] статья на Хабре: http://habrahabr.ru/post/159217/

[54] Zend Framework Day 2012: http://frameworksdays.com/event/zend-framework-day-2012/page/program

[55] отчет.: http://tokarchuk.ru/2012/11/zend-framework-day-2012/

[56] TYPO3 CMS 6.0 released: http://typo3.org/news/article/typo3-cms-60-released/

[57] bbPress: http://bbpress.org/blog/2012/11/bbpress-2-2-now-available/

[58] Knews Multilingual Newsletters: http://www.knewsplugin.com/

[59] WP Subscriber Form: http://sharp-coders.com/plugins/wp-plugins/wp-subscriber-form

[60] BackWPup: http://wordpress.org/extend/plugins/backwpup/

[61] Theme-Check: http://wordpress.org/extend/plugins/theme-check/

[62] стандартам.: http://codex.wordpress.org/Theme_Review

[63] WP SlimStat: http://wordpress.org/extend/plugins/wp-slimstat/

[64] Force Password Change: http://wordpress.org/extend/plugins/force-password-change/

[65] Batcache: http://wordpress.org/extend/plugins/batcache/

[66] Edit Flow: http://editflow.org/

[67] No Weak Passwords: http://wordpress.org/extend/plugins/no-weak-passwords/

[68] Automatic Updater: http://wordpress.org/extend/plugins/automatic-updater/

[69] BuddyPress Media: http://wordpress.org/extend/plugins/buddypress-media/

[70] BuddyPress: http://buddypress.org/

[71] Ice Visual Revisions: http://wordpress.org/extend/plugins/ice/

[72] Восхитительная простая и практичная библиотека для сложения двух чисел на PHP: https://github.com/Herzult/SimplePHPEasyPlus

[73] Ссылка: http://habrahabr.ru/company/zfort/blog/158977/

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

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

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

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