Frage

Mein Projekt besteht aus mehreren Bundles, von denen einige erforderlich sind und andere ich auf bestimmten Servern verwenden werde.jetzt muss ich Abhängigkeiten für ein nicht benötigtes Bundle hinzufügen.ich halte es für eine Verschwendung, es als Projektabhängigkeit in den Hauptkomponisten aufzunehmen.json, da ich diesen Code möglicherweise nicht verwende, wenn ich das Bundle nicht verwende.

ist es möglich, einen Komponisten zu haben.json-Datei in diesem Bundle?wenn es nicht möglich ist, wie kann ich mit meinem Fall umgehen?

Beispiel

src/
   Project/
      RequiredFirstBundle/
      RequiredSecondBundle/
      Non-RequiredBundle/
              composor.json 

Ich habe es versucht:

//Path: src/Project/Non-RequiredBundle/composer.json

{
    "name": "project/non-requiredbundle",
    "description": "desc",
    "type": "symfony-bundle",
    "license": "MIT",
    "authors": [
        {
            "name": "name",
            "email": "email"
        }
    ],
    "require": {
        "symfony/framework-bundle": "~2.2",
        "another/dependency": "*"
    },
    "autoload": {
        "psr-0": { "Project\\Non-RequiredBundle": "" }
    },
    "target-dir": "Project/Non-RequiredBundle"
}

aber ich sehe nicht, dass die Datei beim Ausführen verwendet wird composer.phar update

Danke

War es hilfreich?

Lösung

Wenn ich Sie richtig verstehe, denken Sie darüber nach, entweder EINE Softwareversion zu haben, die alles enthält und sie überall bereitstellt, oder MEHRERE Versionen mit unterschiedlichen Abhängigkeiten auf dem einzelnen Server dieser Software bereitzustellen.

Ich denke nicht, dass der Grund darin bestehen sollte, ein paar Bytes auf der Festplatte zu speichern.

Aber der Komponist kann Ihnen dabei nicht helfen.Tatsächlich sind Sie gezwungen, jede Abhängigkeit, die Sie verwenden möchten, irgendwo in diesen Composer aufzunehmen.json, damit Composer es in den Autoloader einfügt.

Ich würde mit der "One Version fits all" gehen und einfach die Abhängigkeit einschließen, die benötigt wird.Sie müssen sich keine Gedanken über die Bereitstellung von nicht verwendeten Softwareteilen machen.Sie werden das die ganze Zeit tun, auch mit den Teilen, von denen Sie glauben, dass Benutzer sie verwenden werden.

Andere Tipps

Wenn Sie einige Ihrer Bundles teilen möchten, sollten Sie sie als Vendorbundles wie die von Drittanbietern entwickeln.Daher sollten Sie für jedes Ihrer Bundles ein Versionskontroll-Repository erstellen und einen Komponisten hinzufügen.json für jedes Bundle.Um Ihre Bundles für die Symfony Composer-Datei verfügbar zu machen, müssen Sie Ihre Versionskontroll-URL als Ressource hinzufügen.Es könnte ungefähr so aussehen:

"repositories": [
    {
        "type": "vcs"
        "url": "https://github.com/igorw/monolog"
    }
],

Viel Spaß beim Codieren :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top