Tutto questo si basa sul presupposto che in realtà si sta parlando di pacchetti e non classi (che sono menzionati nella esempio ma non è richiesto nella domanda).
Se avete l'oggetto Composer
, è possibile ottenere il percorso della cartella vendor dall'oggetto Config
:
$vendorPath = $composer->getConfig()->get('vendor-dir');
$vendorPath
dovrebbe ora contenere /home/me/public_html/vendor/
.
Non dovrebbe essere troppo difficile costruire il resto del percorso da lì, come già il nome del pacchetto.
Se ciò sembra troppo instabile o non si desidera scrivere la logica, esiste un'altra soluzione. Si potrebbe prendere tutti i pacchetti, scorrere fino a trovare il giusto pacchetto e afferrare il percorso da esso:
$repositoryManager = $composer->getRepositoryManager();
$installationManager = $composer->getInstallationManager();
$localRepository = $repositoryManager->getLocalRepository();
$packages = $localRepository->getPackages();
foreach ($packages as $package) {
if ($package->getName() === 'willdurand/geocoder') {
$installPath = $installationManager->getInstallPath($package);
break;
}
}
$installPath
dovrebbe ora contenere /home/me/public_html/vendor/willdurand/geocoder
Non certo perché è necessario conoscere il percorso del file. Se vuoi solo eseguire il caricamento automatico delle lezioni, non preoccuparti. Il comando 'php /path/to/composer.phar dump-autoload -o' renderà molto veloce l'autoload usando il caricatore automatico del compositore. –