ho usato CakePHP per un po 'e ho ancora non capisco cosa dovrebbe andare in /Lib
vs /Plugin
vs /Vendor
. So che i plug-in sono fondamentalmente mini-app con i loro controller, ecc. Ma ci sono molte situazioni in cui tutte e tre sembrano opzioni ok. Qualcuno potrebbe far luce su questo?CakePHP: Che cosa dovrebbe andare in/lib vs/Venditore vs/Plugin
risposta
Lib
contiene librerie di partito 1 ° che non provengono da 3 parti o fornitori esterni. Ciò consente di separare le librerie interne dell'azienda dalle librerie del fornitore.
Plugin
Contiene plugin pacchetti.
Venditore
Eventuali classi terze parti o le librerie dovrebbero trovarsi qui. Facendo così è facile accedervi tramite la funzione App :: import ('venditore', 'nome'). Osservatori attenti noteranno che questo sembra ridondante, in quanto vi è anche una cartella dei venditori al livello più alto della nostra struttura . Analizzeremo le differenze tra i due quando discutiamo della gestione di più applicazioni e di configurazioni di sistema più complesse con .
Fonte: http://book.cakephp.org/2.0/en/getting-started/cakephp-folder-structure.html
Per chiarire ulteriormente, Lib
è raccomandato per le librerie che si scrive da soli. Questo potrebbe essere solo alcune classi o intere librerie. Vendor
è consigliato per librerie o script che è possibile scaricare da github per esempio. Plugin
è strettamente per plugin framework cakephp.
Per quanto riguarda Lib
rispetto a Vendor
per i propri script o script di terze parti non vi è alcuna differenza di cui sono a conoscenza. Ho inserito i miei script in entrambi e script di terze parti in entrambe le posizioni e non ha fatto alcuna differenza. È solo un modo consigliato per organizzare i tuoi file.
È possibile caricare gli script da Lib
o Vendor
utilizzando App::import()
che è lo stesso di require_once()
. Per caricare i file framework o i propri script che seguono le convenzioni cakephp, utilizzare App::uses()
. Questo utilizza i percorsi definiti utilizzando App::path()
o App::build()
per trovare i file.
Grazie! Penso che la differenza sia molto più chiara. Ti dispiacerebbe aggiungere anche qualche parola sulle implicazioni della scelta di/Lib vs/Vendor? Ad esempio, roba in Venditore sarà accessibile con 'App :: import()' considerando che la roba di Lib sembra richiedere 'App :: uses()' e alcune altre configurazioni. Sono sicuro che c'è una buona ragione per cui sono implementati in modo diverso, ma non è ovvio per me. – emersonthis
Non ovvio. Sembra superfluo avere entrambi. Soprattutto dato l'accesso ai file in Lib e Vendor è completamente diverso. – zmonteca
http://stackoverflow.com/questions/24261432/how-to-use-common-function-in-helper-and-component-in-cakephp – trante