2016-05-10 16 views
3

Ich habe drei Projekte X, Y und Z.Verwenden Sie ein anderes Symfony2-Projekt als Anbieter

Projekt X macht einige Admin-Funktionen für Y-Projekt. Die Entitäten für Projekt Y werden im AppBudnle-Anbieter geschrieben. Jetzt möchte ich auch einige Admin-Aufgaben für das Projekt Z in X, aber Projekt Z hat alle Entitäten in der src/Firma/Z/Entity/...

Ich habe das Projekt Z als Anbieter in der Projekt X mit diesem Autoload:

"autoload": { 
      "psr-0": { 
       "Company\\Z\\": "" 
      } 
     }, 

Aber wenn dies dem AppKernel im Projekt X Hinzufügen, wirft sie

PHP Fatal error: Class 'Company\ZBundle\ZBundle' not found in .... 

Bin ich etwas in der Autoload fehlt?

Das Projekt Z Einheiten dir ist, wie dies in dem X-Projekt gesehen:

/vendor/company/z-bundle/company/ZBundle/src/company/ZBundle/Entity 
+0

Haben Sie versucht, mit "Repositories" in composer.json? Können Sie uns bitte zeigen, wie Sie es in AppKernel nennen? – Delphine

+0

Hallo Delphine, im composer.json habe ich nur 'company/z 'hinzugefügt:" dev-master ". In AppKernel gibt es: 'new Company \ ZBundle \ ZBundle()' –

+2

Dateisysteme neigen dazu, Groß-und Kleinschreibung zu beachten. src/Unternehmen gegen Unternehmen. Composer "kompiliert" die verschiedenen Autoload-Pfade für die Performance. Manchmal ist es hilfreich, im Hersteller/Komponisten nachzuschauen, um zu sehen, was vor sich geht. Und vergessen Sie nicht, den Composer dumpautoload auszuführen, nachdem Sie Änderungen an composer.json vorgenommen haben, damit Ihre Änderungen automatisch übernommen werden. – Cerad

Antwort

2

Ich erstelle eine Antwort, weil Kommentarbereich zu kurz ist:

In Ihrem composer.json so etwas wie dies versuchen, nach Ihrem eigenen Projekt:

 "repositories": [ 
      { 
       "type": "vcs", 
       "url": "[email protected]:You/companyZBundle.git" 
      }, 
    ], 
    "require": { 
      "php": ">=5.3.9", 
     ... 
     "You/companyZBundle": "[email protected]" 
     } 

In Ihrem AppKernel:

new Company\ZBundle\ZBundle() 

Und, wie Cerad sagte, seien Sie vorsichtig im Fall!