Pull to refresh

Yii в phar'е

Reading time 2 min
Views 4.9K
Как только я узнал об исполняемых PHP-архивах phar, сразу же захотелось их попробовать. Разработчиками, да и на хабре, это добро было довольно неплохо разрекламировано. Была информация о том, что использование архивов +APC даёт прирост производительности в 6 раз.
Заряженный этим заявлением, я захотел проверить все на практике, не просто примером из документации, а примером из жизни. Так как занимаюсь разработкой на yii, то yii был выбран подопытным кроликом. Честно, попыток создания архива (yii) было много, но все они были не рабочими до последнего момента. Сразу скажу — скрипт сбора архива не мой, а человека по имени Rasmus Schultz, за что ему огромная благодарность! Я лишь внес мелкие незначительные изменения.

Ожидал от phar'а заявленные 6x прироста, но на практике, в боевых условиях, результат более земной. Итак, тестировал я на 6 разных машинах + на локальной машине. На 5 из 6 заработал, на 3 из них без каких либо проблем. Как сказано разработчиками — без APC архивы использовать бесполезно, во всяком случаи так показала практика. Скорость и потребления памяти немного увеличиваются. С APC прирост в скорости в среднем составляет 20-40%, а потребление памяти -10%.

phar архив yii framework скачать можно тут

Как использовать

Все просто, скачиваем, помещаем архив там где у вас лежит папка с фремворком.
В index.php заменяем ваше подключение фремворка на:
$yii="phar://".dirname(dirname(FILE)).'/yii.phar/yii.php';
или
$yii="phar://".dirname(dirname(FILE)).'/yii.phar/yiilite.php';

(для структуры каталогов из коробки изменяем путь на свой )
В принципе все.

Если возникает ошибка типа:
Необходимый для отображения asset "phar:///home/yoyoCMF/yii.phar/web/js/source" не существует.

в конфиге прописываем

'clientScript'=>array
                (
                    ...
                    //устанавливаем нашу директорию со скриптами(ЕСЛИ ИСПОЛЬЗУЕМ YII.PHAR)
                    'coreScriptUrl'=>DIRECTORY_SEPARATOR.'js'.DIRECTORY_SEPARATOR,
                ),

Других проблем с использованием архива фремворка у меня не наблюдалось

ЗЫ: Расписывать на каких машинах производилось тестирование не вижу смысла, версия php 5.3.2, 5.3.5, 5.3.8, 5.4.4, 5.4.6.
В архиве yii framework 1.1.12.
Tags:
Hubs:
+17
Comments 19
Comments Comments 19

Articles