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

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

Дочерние рубрики:

Быдлокодеры хреновы :-(

Возился сейчас с расширением Memcache; после очередного изменения кода сервер ушёл в глухую защиту и отказался реагировать на внешние раздражители. Далее »

Автор: , опубликовано в: PHP, комментариев: 5
27
Мар
2010

xCache 1.3.0 для PHP 5.2.x для Debian/Ubuntu Linux

Всем, кто хочет обновить до последней версии, но не знает, как это сделать (либо не хочет собирать из исходников). Далее »

Автор: , опубликовано в: Linux, PHP, Администрирование, комментариев: 9
26
Мар
2010

Ошибка в ORM Kohana 3 при использовании префиксов таблиц

Ситуация: имеем две таблицы: пользователи и подписки:

[-]
View Code MySQL
CREATE TABLE prefix_users (
    id INTEGER NOT NULL PRIMARY KEY,
    name VARCHAR(255) NOT NULL
);

CREATE TABLE prefix_subscriptions (
    id INTEGER NOT NULL PRIMARY KEY,
    user_id INTEGER UNSIGNED NOT NULL,
    some_data TEXT NOT NULL
);

Один пользователь может иметь несколько подписок, одна подписка может принадлежать только одному пользователю. Далее »

Автор: , опубликовано в: Kohana, комментариев: 6
19
Фев
2010

SQLMon для Code Igniter

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

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

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

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

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

SQLMon для Kohana 3

Продолжая славную традицию реализации под различные CMS/фреймворки, написал одному заказчику модуль для .

SQLMon для 3 интегрируется в иерархию классов Database (встраивается между классами Database_ и Kohana_Database_MySQL) и реализует обёртку над методом Kohana_Database_MySQL::query(), измеряя время выполнения запроса, объём потребляемой памяти, записывая код ошибки запроса, трассу вызовов и EXPLAIN запроса (причём не только для SELECT, но и UPDATE/DELETE и INSERT/REPLACE INTOAS или CREATE  TABLEAS) — всё то же самое, что и SQLMon для WordPress. Далее »

Автор: , опубликовано в: Kohana, комментариев: 4
9
Фев
2010

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

А также:

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

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

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

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

Недавно я для себя открыл, что PHP не умеет оптимизировать код, а тут новый удар: оказывается, что красота кода отрицательно влияет на . Далее »

Автор: , опубликовано в: PHP, комментариев: 11
25
Сен
2009