Разработка, HowTo

PHP: указываем include_path в качестве аргумента

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

Делаем алиас и не заморачиваемся 🙂

$ alias "php=/usr/bin/php -d ""include_path='.:/usr/share/pear:/another/include/path'"""
$ php -r "print ini_get('include_path');" 
.:/usr/share/pear:/another/include/path

И можно заставлять работать таким образом разные комманд-лайн утилиты, которым позарез нужен include_path с нашими локальными либами.

HowTo

Linux: именованные каналы

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

В одном терминале

$ mkfifo named_pipe
$ gzip -9 -c < named_pipe > out.gz &

В другом

echo Hello, world! > named_pipe

Теперь мы можем увидеть полученный файл.

$ zcat out.gz 
Hello, world!
Пример использования именованных каналов в linux
Пример использования именованных каналов в linux

И удалить именованный канал

$ rm named_pipe
HowTo, JFF

PHP: дизассемблирование

Иногда очень интересно посмотреть в недра того, что нагенерировал интерпретатор php. Проще говоря — дизассемблировать 🙂

Ставим расширение vld из pecl.

А потом можем легко смотреть кишки (опкоды) любого скрипта.

$php -d vld.active=1 -d vld.execute=0 -f yourscript.php

Можно заглянуть в статью, которая как раз посвящена разбору опкодов. И в официальный мануал.