Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации файловой системы и потоков
Имя По умолчанию Место изменения Список изменений
phar.readonly "1" PHP_INI_ALL  
phar.require_hash "1" PHP_INI_ALL  
phar.extract_list "" PHP_INI_ALL Доступно начиная с phar 1.1.0 и заканчивая 1.2.3, удалено в 2.0.0.
phar.cache_list "" PHP_INI_SYSTEM Доступно начиная с phar 2.0.0.

Краткое разъяснение конфигурационных директив.

phar.readonly boolean

Этот параметр отключает поддержку создания или модификации Phar-архивов с помощью потока phar и записи объектов Phar на диск. Этот параметр всегда должен быть включен на готовых работающих машинах, поскольку поддержка записи модулем phar позволила бы простое создание основанных на PHP вирусов в случае присутствия других уязвимостей в системе общей безопасности.

Замечание:

Этот параметр может быть отключен в php.ini только исходя из соображений безопасности. Если параметр phar.readonly отключен в php.ini, пользователь может включить phar.readonly в скрипте или отключить его позже. Если параметр phar.readonly включен в php.ini, скрипт может безвредно "повторно включить" переменную INI, но не может отключить ее.

phar.require_hash boolean

Этот параметр сделает обязательной какую-либо подпись (в настоящий момент поддерживаются MD5, SHA1, SHA256 и SHA512) для всех открываемых Phar-архивов и сделает невозможной обработку любого Phar-архива, не содержащего подпись.

Замечание:

Этот параметр может быть отключен в php.ini только из соображений безопасности. Если параметр phar.require_hash отключен в php.ini, пользователь может включить phar.require_hash в скрипте или отключить его позже. Если параметр phar.require_hash включен в php.ini, скрипт может безвредно "повторно включить" переменную INI, но не может отключить ее.

Этот параметр не влияет на чтение простых tar-файлов при помощи класса PharData.

phar.extract_list string

Этот параметр INI был удалён начиная с phar 2.0.0

Позволяет осуществлять разметку с полного пути к phar-архиву или его алиасу к расположению его распакованных файлов. Формат параметраname=archive,name2=archive2. Такая разметка делает возможным извлечение файлов phar на диск, а также позволяет модулю phar выступать в роли своего рода разметчика по отношению к распакованным файлам. Часто это делается из соображений производительности или является вспомогательным средством при отладке phar.

Пример #1 phar.extract_list usage example

в php.ini:
phar.extract_list = archive=/полный/путь/к/архиву/,arch2=/полный/путь/к/архиву2
<?php
include "phar://archive/content.php";
include 
"phar://arch2/foo.php";
?>

phar.cache_list string

Этот параметр INI был добавлен в phar 2.0.0

Позволяет проводить разметку phar-архивов, для которых необходимо осуществить предварительный разбор в момент старта веб-сервера. Обеспечивает повышение производительности за счёт запуска файлов вне phar-архива со скоростью, очень близкой к той, которая была бы при запуске этих файлов традиционным способом с диска.

Пример #2 phar.cache_list usage example

в php.ini (windows):
phar.cache_list =C:\путь\к\phar1.phar;C:\путь\к\phar2.phar
в php.ini (unix):
phar.cache_list =/путь/к/phar1.phar:/путь/к/phar2.phar