Почему люди ненавидят PHP

Существует масса причин, почему люди «ненавидят» или по крайней мере косо смотрят на PHP. Некоторые из них являются обоснованными, а другие предвзятыми. Непоследовательность haystack / needle Часто программисты говорят о непоследовательности haystack / needle, но это происходит из-за незнания одного простого правила: array: needle, haystack string: haystack, needle На самом […]

Шаблонизатор Mustache

В последнее время я много работал с различными шаблонизаторами. Для последнего проекта требовалось повторное использование одного и того же набора шаблонов в приложениях JS и PHP (в сочетании с History API обеспечивается бесшовное динамическое поведение, но все еще имеющее сырой вид). На самом деле, сегодня есть только одно решение для […]

Почему я перестал следовать стандартам программирования

Каждый разработчик знает, что у него должен быть стандарт программирования, принятый в компании. Каждый разработчик также знает, что нужно постараться, чтобы ваши собственные правила попали в стандарты компании. Каждый разработчик в тайне отчаивается уже в тот момент, когда начинает работу над новым проектом… Он боится тех стандартов, которые мог придумать какой-нибудь […]

Руководство для проектирования хорошей схемы базы данных

Практически все Yii-приложения построены на базах данных. И хотя фреймворк Yii очень гибок в плане взаимодействия с базой данных, некоторые решения призваны сделать разработку еще проще и удобней. Первый и наиболее важный момент заключается том, что Yii-приложения широко используют шаблон ActiveRecord. Исходя из этого, все конструктивные соображения направлены на оптимизацию […]

Как быстрее обойти массив (без ключей

Добрый день. Что быстрее работает while, for или foreach? Для ленивых foreach оказался быстрее. Суть теста Создается массив с 1000000 (одним миллионом) элементов (числа от 1 до 1000000) и кормим этот массив различным циклам.

Проблема модификации даты через strtotime

Хочу поведать вам о небольшой проблеме с вычислением даты функцией strtotime. Суть в следующем. Мне нужно было получить название предыдущего месяца. Ничего сложного в этой задаче нет: $t = strtotime(‘-1 month’); echo strftime(‘%B’, $t);

Сравнение производительности strtr, str_replace, preg_replace

Добрый день. Сегодня я решил узнать, что работает быстрее: strtr, str_replace или же preg_replace. Для ленивых: str_replace — самая быстрая функция, на втором месте preg_replace, а уж strtr совсем медленная.

Декаплинг и фреймворки

Вы, конечно, используете в своей работе новейшие технологии и фреймворки. Более того, вы самостоятельно написали 2,5 фреймворка, ваш код  PSR-2 совместим, полностью юнит-тестирован, имеет сопровождающие PHPMD  и PHPCS конфигурации, и даже может поставляться с надлежащей документацией (на самом деле, она существует!). При выпуске новой версии вашего любимого фреймворка вы захотите побыстрее использовать его в […]

Группа PHP-FIG и разделяемые интерфейсы

Этот пост я написал по просьбе Эверта Пота, с которым успел пообщаться во время голландской конференции PHP в июне 2012 года. В статье подробно рассмотрены некоторые наблюдения, связанные с группой PHP-FIG и, надеюсь, после прочтения вы поймете, почему я больше не принимаю непосредственного участия в ней. Я был одним из основателей  Framework […]

Ловушки PHP

После прочтения статьи Securing PHP, написанной Джеймсом Каннингемом, я подумал, что неплохо бы собрать воедино несколько тезисов об использовании PHP. Имейте в виду, что я не эксперт по вопросам безопасности. Однако эта статья содержит несколько отправных точек по предотвращению заражения экcплоитами, повышению защищенности PHP-приложений и прочим вещам, которые я считаю самыми […]