Статьи из рубрики «PHP» RSS

Полезные вещи на PHP

SQLMon для Code Igniter

На днях мне довелось заняться оптимизацией одного проекта, написанного с использованием фреймворка Code Igniter. Важной частью процесса являлась запросов к базе данных, а для этого как минимум нужно видеть эти запросы перед глазами.

Этот минимум в Code Igniter достигается очень просто: вызовом

[-]
View Code PHP
$this->output->enable_profiler(TRUE);

в контроллере. Но когда запросов на странице очень много, хотелось бы избавиться от рутинного выполнения EXPLAIN для каждого подозрительного запроса. Что, собственно, и делает SQLMon. Возникает логичное желание интегрировать его в Code Igniter. Далее »

Автор: Vladimir, опубликовано в: PHP, комментариев: нет
13
Фев
2010

Исправление ошибки с поддержкой VERP в PHPMailer

PHPMailer — класс для отправки почты из ; используется многими известными приложениями, в том числе и .

VERP — техника, упрощающая автоматическое определение и удаление email-адресов из списков рассылки, сообщения которым не могут быть доставлены.

Поддержка VERP в PHPMailer хоть и реализована, но не работает. Далее »

Автор: Vladimir, опубликовано в: PHP, комментариев: нет
2
Фев
2010

Патч для php-cgi, позволяющий конфигурировать значение listen backlog

По умолчанию значение listen backlog в -cgi жёстко задано — 128. Это означает, что не сможет обработать более 128 запросов одновременно (точнее, что очередь запросов не сможет превысить данного значения). Я столкнулся с тем, что 128 — это мало.

Для тех, кто столкнулся с данной проблемой, но по каким-либо причинам не хочет/не может поставить -fpm (в котором backlog конфигурируется), я сделал небольшой . Далее »

Автор: Vladimir, опубликовано в: C/C++, PHP, комментариев: 9
3
Янв
2010

Простой DoS для PHP

Копался сегодня во внутренностях , и обнаружил такую вещь: функция zend_hash_sort() (она вызывается из функций типа usort() и прочих) сортирует не сам массив (в терминах Zend Engine), а массив (в терминах языка C) указателей на элементы массива (в терминах Zend Engine), а потом по отсортированному C-массиву пересоздаёт -массив. Далее »

Автор: Vladimir, опубликовано в: PHP, Безопасность, комментариев: 3
19
Окт
2009

PHP: красота кода сказывается на производительности: часть 2

В прошлой части:

  • if быстрее, чем switch;
  • echo быстрее, чем print;
  • явная проверка на (не)нулевое значение медленнее, чем неявная.

А также:

  • константные выражения, которые могут быть вычислены на этапе компиляции, не вычисляются;
  • не умеет удалять неиспользуемый код на этапе компиляции.

Продолжим. Далее »

Автор: Vladimir, опубликовано в: PHP, комментариев: нет
7
Окт
2009