2016-08-26 5 views
1

私はwordpress-pluginでdoctrineを使用しています。ただし、コマンドラインツールは正しく動作しません。 すべての入力やパラメータを無視して、入力した内容に関係なく、デフォルトのヘルプテキストを表示し続けます。Doctrineコマンドラインは入力を無視します

PHPバージョンは7.0.7です。

(ベンダー/ ORM/binに/ configの中に座っている)私のcli-config設定の内容は、次のようになります。

<?php 

use Doctrine\ORM\Tools\Console\ConsoleRunner; 

require_once __DIR__ . '/../../../../../doctrine-bootstrap.php'; 

$spmm = new doctrineBootstrap(); 

$entityManager = $spmm->getEntityManager(); 

return ConsoleRunner::createHelperSet($entityManager); 

?> 

ブートストラップ自体の内容:

<?php 

use Doctrine\ORM\Tools\Setup; 
use Doctrine\ORM\EntityManager; 

class doctrineBootstrap { 

    private $entityManager; 

    public function __construct() { 
     $this->initDoctrine(); 
    } 

    private function initDoctrine() { 
     $paths = array("/model"); 
     $isDevMode = false; 

     // the connection configuration 
     $dbParams = array(
      'host' => 'XXXX', 
      'driver' => 'pdo_mysql', 
      'user'  => 'XXXX', 
      'password' => 'XXXX', 
      'dbname' => 'XXXX', 
     ); 

     $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode); 
     $this->entityManager = EntityManager::create($dbParams, $config); 
    } 

    public function getEntityManager() { 
     return $this->entityManager; 
    } 
} 

コマンドそれ自体はコンソールにエラーを出力していませんが、PHPエラーログにこのエラーが表示されます:

[26-Aug-2016 11:17:26 Europe/Berlin] PHP Notice: Undefined index: argv in /html/wordpress/wp-content/plugins/wp-openimmo/vendor/symfony/console/Input/ArgvInput.php on line 55 
[26-Aug-2016 11:17:26 Europe/Berlin] PHP Warning: array_shift() expects parameter 1 to be array, null given in /html/wordpress/wp-content/plugins/wp-openimmo/vendor/symfony/console/Input/ArgvInput.php on line 59 
[26-Aug-2016 11:17:26 Europe/Berlin] PHP Warning: Invalid argument supplied for foreach() in /html/wordpress/wp-content/plugins/wp-openimmo/vendor/symfony/console/Input/ArgvInput.php on line 276 
[26-Aug-2016 11:17:26 Europe/Berlin] PHP Warning: Invalid argument supplied for foreach() in /html/wordpress/wp-content/plugins/wp-openimmo/vendor/symfony/console/Input/ArgvInput.php on line 276 
[26-Aug-2016 11:17:26 Europe/Berlin] PHP Warning: Invalid argument supplied for foreach() in /html/wordpress/wp-content/plugins/wp-openimmo/vendor/symfony/console/Input/ArgvInput.php on line 276 

私は少し混乱しています。なぜなら、これに関するドキュメンテーションはあまり明確ではないからです。どうすればそれを動かすことができますか?

答えて

0

[OK]を、私は私の問題を引き起こしていたものを発見:

を最後に、そのは、php.ini経由phpgetcwd()php_cliと経路問題や障害エラー出力ました。

私の質問で述べたように、私のcli-configはvendor/orm/bin/configにあります。これは、phpでコマンドを実行する場合には正しいです。

php_cliでコマンドを実行すると、コマンドが実行されている現在のディレクトリにconfigファイルが必要です。最初にphp_cliで試してみましたが、私は全く応答がありませんでした。だから、私はphp_cli -nコマンドを試して、cli-config.phpが見つからないというエラーを受け取りました。だから、私はそのファイルをコピーし、その作業を行いました。エラー出力はデフォルトで無効になっていたので、私は単にエラーメッセージを見なかった。

しかし、phpで実行する場合は、register_argc_argvディレクティブがphp.iniでONに設定されていることを確認してください。

関連する問題