Yii в phar’е

в 20:13, , рубрики: phar, yii, yii framework, метки: ,

Как только узнав о исполняемых 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.

Автор: bo883

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js