Ergebnis 1 bis 6 von 6

Thema: composer.json per Hand edit & ContaoManager

  1. #1
    Gesperrt
    Registriert seit
    15.02.2018.
    Ort
    58300 Wetter
    Beiträge
    24

    Standard composer.json per Hand edit & ContaoManager

    was bei mir lokal funktioniert, macht Probleme wenn ich keinen Zugang zur Konsole habe.

    1. ich habe ein Bundle unter /src erstellt
    2. ich erweitere die root composer.json um zwei Dinge
    Code:
        "repositories": [
            {
                "type": "path",
                "url": "./src/Bitkorn/IsitafuBundle",
                "options": {
                    "symlink": true
                }
            }
        ]
    und
    Code:
    "require": {
        ...
            "bitkorn/isitafu-bundle": "dev-master",
        ...
        }
    Bei mir lokal mache ich jetzt ein 'composer update' bzw. 'composer install' und das Bundle ist installiert.
    Auf dem Server im Netzt, dachte ich das gleiche kann man mit dem ContaoManager machen. Aber dieser installiert das neue Bundle nicht.

    Bei mir lokal mit 'composer update' wird in /vendor ein Symlink erstellt. Das macht der ContaoManager nicht. Darum muss ich auf die Kommandozeile um ein 'composer update' zu machen, oder gibt es eine Lösung mit dem ContaoManager?

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Wenn dein Bundle ohnehin schon in src/ liegt ist das die falsche Herangehensweise. Registriere dein lokales Bundle einfach direkt mit einer "ContaoManagerPlugin" Klasse im Root Namespace.

  3. #3
    Gesperrt
    Registriert seit
    15.02.2018.
    Ort
    58300 Wetter
    Beiträge
    24

    Standard

    ich würde gerne behaupten alles versucht zu haben und dann bei der aktuellen Methode gelandet zu sein [nerdSmilie].

    Versuche ich per ContaoManagerPlugin zu installieren mache ich folgendes:

    PHP-Code:
    use Contao\CoreBundle\ContaoCoreBundle;
    use 
    Contao\ManagerPlugin\Bundle\BundlePluginInterface;
    use 
    Contao\ManagerPlugin\Bundle\Parser\ParserInterface;
    use 
    Contao\ManagerPlugin\Bundle\Config\BundleConfig;

    class 
    ContaoManagerPlugin implements BundlePluginInterface
    {

        public function 
    getBundles(ParserInterface $parser)
        {
            return [
                
    BundleConfig::create(\Bitkorn\Isitafu\BitkornIsitafuBundle::class)->setLoadAfter([ContaoCoreBundle::class])
            ];
        }


    dazu packe ich in die root composer.json NUR (für mein Bundle) folgendes
    Code:
        "autoload": {
            "classmap": [
                "app/ContaoManagerPlugin.php"
            ],
            "psr-4": {
                "Bitkorn\\Isitafu\\": "src/Bitkorn/IsitafuBundle",
            }
        }
    und mache composer update.

    Falls ich damit alles richtig gemacht habe, funktioniert diese Möglichkeit nicht. Da du hier der ContaoGuru bist, ist etwas falsch.

  4. #4
    Contao-Nutzer Avatar von spotbot2k
    Registriert seit
    26.06.2017.
    Beiträge
    65

    Standard

    Zitat Zitat von allapow Beitrag anzeigen
    Code:
        "autoload": {
            "classmap": [
                "app/ContaoManagerPlugin.php"
            ],
            "psr-4": {
                "Bitkorn\\Isitafu\\": "src/Bitkorn/IsitafuBundle",
            }
        }
    Ich glaube es soll

    Code:
            "psr-4": {
                "Bitkorn\\Isitafu\\": "src/",
            }
    sein.

  5. #5
    Gesperrt
    Registriert seit
    15.02.2018.
    Ort
    58300 Wetter
    Beiträge
    24

    Standard

    ne, das ist schon richtig: der Namespace für \Bitkorn\IsitafuBundle liegt nicht in /src sondern in src/Bitkorn/IsitafuBundle.
    Auf meinem Rechner lokal funktioniert es ja auch (mit verschiedenen Bundles). Ich habe nur leider keine Macht für die Konsole des Servers im Netz.

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Zitat Zitat von allapow Beitrag anzeigen
    ich würde gerne behaupten alles versucht zu haben und dann bei der aktuellen Methode gelandet zu sein [nerdSmilie].

    Versuche ich per ContaoManagerPlugin zu installieren mache ich folgendes:

    PHP-Code:
    use Contao\CoreBundle\ContaoCoreBundle;
    use 
    Contao\ManagerPlugin\Bundle\BundlePluginInterface;
    use 
    Contao\ManagerPlugin\Bundle\Parser\ParserInterface;
    use 
    Contao\ManagerPlugin\Bundle\Config\BundleConfig;

    class 
    ContaoManagerPlugin implements BundlePluginInterface
    {

        public function 
    getBundles(ParserInterface $parser)
        {
            return [
                
    BundleConfig::create(\Bitkorn\Isitafu\BitkornIsitafuBundle::class)->setLoadAfter([ContaoCoreBundle::class])
            ];
        }


    dazu packe ich in die root composer.json NUR (für mein Bundle) folgendes
    Code:
        "autoload": {
            "classmap": [
                "app/ContaoManagerPlugin.php"
            ],
            "psr-4": {
                "Bitkorn\\Isitafu\\": "src/Bitkorn/IsitafuBundle",
            }
        }
    und mache composer update.

    Falls ich damit alles richtig gemacht habe, funktioniert diese Möglichkeit nicht. Da du hier der ContaoGuru bist, ist etwas falsch.
    Mit folgender Dateistruktur könntest du die composer.json noch schlanker machen:
    Code:
    src/
      Bitkorn/
        IsitafuBundle/
          …
          BitkornIsitafuBundle.php
      ContaoManagerPlugin.php
    Code:
        "autoload": {
            "psr-4": { "": "src/" }
        }
    Ansonsten: der Konvention nach sollte der Namespace Bitkorn\IsitafuBundle lauten, nicht Bitkorn\Isitafu.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •