Статьи

__halt_compiler () — как орехи?

Саймон отметил новую функцию PHP (ish) __halt_compiler, которая, согласно пакету;

… Останавливает выполнение компилятора. Это может быть полезно для встраивания данных в PHP-скрипты, такие как установочные файлы. Позиция байта начала данных может быть определена константой __COMPILER_HALT_OFFSET__, которая определяется только в том случае, если в файле присутствует __halt_compiler ().

Это может быть или не быть элегантным решением (это, безусловно, относительно просто), но у него есть очень веский вариант использования — разрешить приложениям PHP, которые устанавливают себя из одного скрипта, всех связанных частей (других скриптов PHP, CSS, HTML, изображений). и т. д.) упакованный в конце скрипта в двоичном виде.

Ярким примером является fudforum Ильи — если вы скачаете последнюю версию, вы увидите, что она использует это — просто запустите скрипт install.php, и он оттуда распаковывает все. Грег упомянул и __halt_compiler некоторое время назад в связи со всем, что он делал в phar- архивах.

Во всяком случае — лично не считаю это настолько сумасшедшим. И рассмотреть возможности для обеспечения безопасности работы 😉

В противном случае заметили, что у Сара Големона есть книга по написанию расширений PHP — она ​​очень нужна. Также связанная с этим заметка Брюс Экель опубликовал бесплатный семинар в этой серии «Мышление в» — « Мышление в Си» .