Excecutables in Composer

Adicionar executáveis ​​de linha de comando ao composer enquanto mantém toda a funcionalidade de carregamento automático é fácil. Tomando imagine_cli como exemplo, você teria um arquivo executável bin/imagine_cliem seu projeto. Adicionando

"bin": ["bin/imagine_cli"]

na raiz do seu composer.jsonirá instruir o composer a criar um link simbólico vendor/bin/imagine_clique vincule a esse executável quando o seu projeto for incluído como uma dependência de outro projeto.

Para manter o trabalho de carregamento automático no caso de você usar seu projeto autônomo, e quando incluído em outro projeto, use algo semelhante a este em seu arquivo executável (copiado do phpunit):

$files = array(
__DIR__
. '/../vendor/autoload.php', // when in main projects
__DIR__
. '/../../../autoload.php', // when executed as dependency
);

$found
= FALSE;

foreach ($files as $file) {
if (file_exists($file)) {
require $file;

$found
= TRUE;

break;
}
}

if (!$found) {
die('autoloader not found');
}

// your executable code here

Agora, executar seu executável a partir de um projeto é tão simples quanto

vendor/bin/imagine_cli