In Linux we trust!

PHP: Phar по-быстрому

Максимально быстрый способ собрать phar.

Инициализация проекта. Дадим ему имя и зададим зависимости:

$ mkdir project && cd project
$ curl -s 'https://getcomposer.org/installer' | php
$ php composer.phar init -n --name "myname/myrepo"
$ php composer.phar require guzzlehttp/guzzle

Файл index.php (дайте файлу права +x), который будет служить входной точкой для phar (его я разместил в корне проекта):

#!/usr/bin/env php
<?php

require __DIR__ . '/vendor/autoload.php';

$client = new \GuzzleHttp\Client();
$res = $client->request('GET', 'https://api.github.com/repos/guzzle/guzzle');
echo $res->getStatusCode(), "\n";

Этот index.php надо прописать как vendor binary:

$ php composer.phar config --editor

Откроется редактор. В конец JSON массива вставляем:

"bin": ["index.php"]

Наш проект готов к архивированию. Установим утилиту (скачать отсюда), что выполнит весь процесс архивирования за нас:

$ chmod a+x phar-composer.phar
$ sudo mv phar-composer.phar /usr/local/bin/phar-composer

Последний штрих: разрешить создание phar архивов (/etc/php5/cli/php.ini):

phar.readonly = Off

Создаем phar и проверяем:

$ phar-composer.phar build .
$ file myrepo.phar
myrepo.phar: data
$ ./myrepo.phar
200

Счастливо!