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_cli
em seu projeto. Adicionando
"bin": ["bin/imagine_cli"]
na raiz do seu composer.json
irá instruir o composer a criar um link simbólico vendor/bin/imagine_cli
que 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