2016-04-10 16 views
3

Ich versuche, Post-Installation und Post-Update-Skripte in einem Composer-Paket arbeiten. Hier ist ein Auszug aus der composer.json Datei:PHP Composer-Skripte werden nicht ausgelöst

"autoload": { 
    "psr-4": { 
     "App\\": "src/" 
    } 
}, 

"scripts": { 
    "post-update-cmd": [ 
     "App\\Install\\ComposerScripts::postUpdate" 
    ], 
    "post-install-cmd": [ 
     "App\\Install\\ComposerScripts::postInstall", 
     "./test.sh" 
    ] 
} 

Und hier ist ComposerScripts.php:

<?php 

namespace App\Install; 

use Composer\Script\Event; 

class ComposerScripts 
{ 

    public static function postInstall(Event $event) 
    { 
     $io = $event->getIO(); 

     if ($io->askConfirmation('Install Mecab? ', false)) { 
      return true; 
     } 

     exit; 
    } 

    public static function postUpdate(Event $event) 
    { 
     $event->getIO()->write("Working!"); 

     return true; 
    } 
} 

Und die Datei test.sh:

#!/bin/sh 
echo Working 

Die ComposerScripts Methoden funktionieren, wenn ich sie mit composer run-script testen und Das Skript test.sh funktioniert einwandfrei, aber wenn ich das Paket installiere oder aktualisiere, passiert gar nichts. Keine Ausgabe, kein Fehler, nichts. Irgendeine Idee, was hier vor sich geht?

+0

So wie eine Plausibilitätsprüfung, genau das, was Befehle, die Sie das Paket installieren oder zu aktualisieren, ausgeführt werden? –

Antwort

0

versuchen mit

"autoload": { 
    "psr-4": { 
     "App\\": "src/" 
    } 
}, 

"scripts": { 
    "post-update-cmd": [ 
     "App\\Install\\ComposerScripts::postUpdate" 
    ], 
    "post-install-cmd": [ 
     "App\\Install\\ComposerScripts::postInstall", 
     "bash test.sh" 
    ] 
} 
+0

Danke aber ich habe das probiert und immer noch nichts. Selbst wenn ich das Skript test.sh lösche, passiert nichts, obwohl die beiden ComposerScript-Methoden ausgelöst werden sollten. –

Verwandte Themen