2016-04-01 14 views
3

Angenommen, ich möchte einen Blog in Symfony erstellen, der in BlogBundle lebt. Aber dieser BlogBundle hat Abhängigkeiten von anderen Bundles wie FOSUserBundle, KnpPaginator Bundle, FMBbCodeBundle oder was auch immer ich am Ende benutze. Bedeutet das, dass ich den BlogBundle nicht wirklich in einem anderen Projekt wiederverwenden kann? Das Best Practices for Reusable Bundles Kapitel des symfony Kochbuchs sagtSymfony 2 wiederverwendbare Bundles

Ein Bundle muss Drittanbieter-PHP-Bibliotheken nicht einbetten. Es sollte sich stattdessen auf das automatische Autoloading von Symfony verlassen.

Aber was genau bedeutet das? Kann ich nichts verwenden, das nicht von mir programmiert wurde?

Wenn das der Fall ist, müsste ich das Rad für die grundlegendsten Probleme, die ich bei der Entwicklung meines Bundles erfahre, neu erfinden. Zum Beispiel müsste ich meinen eigenen Paginator erstellen, um Inhalt paginieren, meinen eigenen Benutzermanager erstellen und so weiter. Ich sehe darin keinen Punkt, da ich meine Zeit damit verbringen würde, Probleme zu beheben, die bereits viel getan wurden besser als ich es könnte.

Oder bedeutet das Kochbuch, dass ich nichts verwenden kann, das nicht in einem Bündel lebt? Das würde mir viel mehr Sinn machen.

Es irritiert mich wirklich, dass niemand wirklich ein Blogbundle oder etwas ähnliches gemacht hat, das gutes Rückgespräch erhält und überall in den oberen Listen erwähnt wird. Ich weiß, Symfony ist nicht dazu gedacht, eine Lösung zu haben, die einfach out of the box funktioniert und einige Codierungen sind notwendig, aber trotzdem. Alle Bündel, die ich finde, die sehr populär zu sein scheinen, sind diejenigen, die etwas wie das Analysieren von BB Code, das Verwalten von Benutzern und andere Dinge tun, die schwierig und mühsam sind, aber niemals etwas Größeres als nur eine Aufgabe zu erledigen.

Ich hoffe, Sie verstehen, was ich meine und kann mir mit meinem Problem helfen. Danke im Voraus!

Antwort

5

Ein Bundle darf keine Drittanbieter-PHP-Bibliotheken einbetten. Es sollte sich stattdessen auf das Standard Symfony Autoloading verlassen. Diese

bedeutet, dass Sie sollten nicht kopieren Code von anderen Bibliotheken zu Ihrem Bundle (Verzeichnis). Stattdessen sollten Sie sie als Abhängigkeiten zu Ihrem composer.json hinzufügen.