2013-07-18 14 views
5

Diciamo che il mio pacco in Laravel è test/test.Pacchetto creato nel workbench di Laravel, ma come trasferirlo nella cartella del fornitore?

Ho creato il pacchetto nel workbench e ha funzionato benissimo dopo Jason Lewis' tutorial. Ora voglio spostare il pacchetto da il workbench alla directory del venditore. Questo è dove tutti i tutorial sono insufficienti, anche i documenti di laravel. Non volevo usare git per spostare i file, quindi ho semplicemente copiato il pacchetto test/test dal workbench alla directory del venditore (e poi cancellato dal workbench). Non ho copiato la cartella test/test/vendor dal workbench (o altri file che ho notato nel file .gitignore). Ho quindi eseguito compositore installare dal mio nuovo fornitore/test/directory di test. Ho quindi effettuato il dump-autoload di compositore dalla directory principale di laravel.

Ora, quando eseguo la mia applicazione ottengo un errore che non ho avuto quando il pacchetto era in banco di lavoro:

Class 'Test\Test\TestServiceProvider' not found 
(this is coming from \bootstrap\compiled.php on line 4121) 

Ho anche fatto un php artigianale discarica-caricamento automatico dalla radice laravel e Ottengo lo stesso errore.

Qualche idea? Oppure qualcuno può portarmi ad un tutorial che porta lo sviluppo del pacchetto fino al punto di sosta finale nella directory del venditore?

risposta

7

Funzionante.

ho aggiunto:

"psr-0": { 
    "Test\\Test": "vendor/test/test/src/" 
} 

alla sezione autoload in composer.json nella directory principale laravel in modo che assomiglia a questo:

"autoload": { 
    "classmap": [ 
     "app/commands", 
     "app/controllers", 
     "app/models", 
     "app/database/migrations", 
     "app/database/seeds", 
     "app/tests/TestCase.php" 
    ], 
    "psr-0": { 
     "Test\\Test": "vendor/test/test/src/" 
    }  
}, 

Se decido di mettere il pacchetto su Packagist tardi quindi potrei rimuovere questo dal caricamento automatico e mantenere il pacchetto a cui fa riferimento nella parte "require" del mio compositore.json. Vedremo cosa succede quando arrivo così lontano!

+0

però, è nella cartella vendor, che sono esclusi dal git impegna (per impostazione predefinita). Suggerisco di creare qualcosa come 'app/lib', quindi quando si passa alla produzione, non è necessario spostarlo manualmente e persiste nel repository. Basta cambiare il percorso psr-0. – wesside

+0

Ho appena modificato il file .gitignore e proprio sotto '/ vendor/*' aggiungo '!/Vendor/Test' – prograhammer

+0

Grazie per questo, ho riscontrato lo stesso identico problema e la tua domanda ha risolto subito il mio problema. –

0

penso che è possibile installare i pacchetti dal disco rigido dal repository locale in questo modo:

"repositories": [ 
    { 
     "type":"vcs", 
     "url":"/path/to/repo/here" 
    } 
], 
"require":{ 
    "me/myrepo":"dev-master" 
} 
Problemi correlati