Reseni composer autoload ignore
- fabian
- Člen | 20
Ahoj,
nikde jsem nenasel, jestli autoloader v composeru podporuje ignorovani
nejakych adresaru z projektu.
Jde mi o to, ze vytvorim nejakou komponentu, dam ji treba na github a mam tam
adresare src/, ve kterem jsou samostatne knihovny, ktere pak pristanou ve
vendor-dir, ale je tam i napr. examples/. Ty bych prave chtel ignorovat,
protoze pokud do nich dam napr. celou tridu nejakeho presenteru, abych ukazal
pouziti, tak mi ji autoloader nacte a pokud se jmenuje treba DefaultPresenter,
tak je problem.
Mozna by se to dalo vyresit tim, ze bych udelal namespace Example a v nem mel tyto ukazkove zdrojaky. Ale stejne je pak zbytecne je autoloadovat do projektu. Proto by se hodilo je ignorovat.
Prehlidnul jsem neco a nejaky zpusob ignorovani existuje, nebo se to resi uplne jinak?
Diky za odpoved pro composer novacka:)
- fabian
- Člen | 20
Aha. Mam v projektu:
"autoload": {
"psr-0": {
"Fmlabs\\GoogleAuth\\": "src/",
"Fmlabs\\GoogleAuthenticator\\": "src/"
}
}
a v autoload_namespaces.php vidim:
'Fmlabs\\GoogleAuthenticator\\' => $vendorDir . '/fabiancz/nette-google-oauth2/src/',
'Fmlabs\\GoogleAuth\\' => $vendorDir . '/fabiancz/nette-google-oauth2/src/',
coz je asi v poradku, ale problem bude, ze jsem zapomel
->addDirectory(__DIR__ . '/../libs')
v bootstrapu, ze?:)
- Filip Procházka
- Moderator | 4668
- Měl by jsi mít svoji knihovnu, ve svém namespace a používat
PSR-0
– už tímhle zajistíš, že se ti bude autoloadovat pouze a jenom knihovna samotná - Pokud ti vadí složka examples ve
vendor/
, tak to má jednoduché řešení – vytvoříš soubor .gitattributes, díky kterému se při stahování zip balíku z githubu nebudou do něj přidávat soubory, které dáš jako ignorované - na knihovně vytvoříš tag, a tento tag budeš vyžadovat v
composer.json
– tím zajistíš, aby Composer závislost instaloval pomocí zip balíku (ten bez examples) a nikoliv pomocígit clone
// edit:
Jop, když
máš Composer, tak nepotřebuješ RobotLoader na libs :)