2016-09-02 4 views
0

独自のMVCアプリケーションでdoctrine ormを使用してエンティティ(PatMon2.php)からテーブルを生成できません。独自のMVCアプリケーションでdoctrine ormを使用してエンティティからテーブルを生成する方法は?

アプリケーション構造は次のとおりです。

/public 
/src 
..../core with COntroller, View, Router, Request and App.php 
..../monBundle/Entity/PatMon2.php 
....bootstrap.php 
/vendor 
compose.json 

and some other folders and files. 

私はPatMon2.phpエンティティからテーブルを生成することはできませんよ、と私は別のプロジェクト(WWW \ Plan2owの代わりにwww \のpatmon2)からメッセージを取得しています。私がプロジェクトを作成したとき、私はそれをコピーして名前空間を変更しました。ベンダーのフォルダとcomposer.lockを削除し、他のバンドルと一緒にdeoctrineを再インストールしました。私は、新しいプロジェクトに古い名前空間が存在しないことを確認しました。新しいツールでは、新しいプロジェクトに「Plan2own」という単語が見つかりませんでした。それにもかかわらず、私は新しいプロジェクトのテーブルを生成することができません。古いプロジェクト名前空間 "Plan2own"を含むエラーメッセージが表示されています。

私がURLを使用する場合:http://patmon2/index.php/home 私は/src/bootsrap.phpファイルと/vendor/composer/autoload_real.phpを含めることができます。 しかし、私がコマンドラインでdoctrine:ormを実行すると、ベンダのディレクトリを含めることができないという文句があります。

のindex.php

<?php 
print_r("C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\patmon2\public\index.php"); 
require '../src/bootstrap.php'; //which requires autoload.php 

bootstrap.phpの

<?php 
use Doctrine\ORM\Tools\Setup; 
use Doctrine\ORM\EntityManager; 
echo("<br> in bootstrap INC_ROOT = ".INC_ROOT); 
require_once '../vendor/autoload.php'; 
<...> 

ベンダー/ autoload.php

<?php 
<...> 
     $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION'); 
     if ($useStaticLoader) { 
      require_once __DIR__ . '/autoload_static.php'; 
      print_r("<br>uses static loader"); 
      call_user_func(\Composer\Autoload\ComposerStaticInit87d6e473c75d808eefba33ccc9231657::getInitializer($loader)); 
     } 

出力http://patmon2/index.php/home

C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\patmon2\public\index.php 
in bootstrap INC_ROOT = C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\patmon2 
uses static loader 

コマンドラインエラー: c:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\patmon2>vendor\bin\doctrine orm:schema-tool:update --force --dump-sql

または C:\ Bitnami \ wampstack-5.6.20-0 \ apache2の\ htdocsに\ WWW \ patmon2> PHPのベンダー\教義の\のORM \ビン\教義

uses static loader <br> in bootstrap<br> in bootstrap INC_ROOT = C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\patmon2PHP 
Warning: require_once(../vendor/autoload.php): failed to open stream: No such file or directory 
in C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\patmon2\src\bootstrap.php on line 69 
    PHP Fatal error: require_once(): Failed opening required '../vendor/autoload.php' 
(include_path='C:\Bitnami\wampstack-5.6.20-0\php\PEAR;C:\Bitnami\wampstack-5.6.20-0\frameworks\smarty\libs;C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\Plan2own\vendor;C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\patmon2\vendor') 
in C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\patmon2\src\bootstrap.php on line 69 

私は、ファイルのコンテンツ出力取得しています>php vendor\bin\doctrine使用する場合:

dir=$(d=${0%[/\\]*}; cd "$d"; cd "../doctrine/orm/bin" && pwd) 

# See if we are running in Cygwin by checking for cygpath program 
if command -v 'cygpath' >/dev/null 2>&1; then 
     # Cygwin paths start with /cygdrive/ which will break windows PHP, 
     # so we need to translate the dir path to windows format. However 
     # we could be using cygwin PHP which does not require this, so we 
     # test if the path to PHP starts with /cygdrive/ rather than /usr/bin 
     if [[ $(which php) == /cygdrive/* ]]; then 
       dir=$(cygpath -m "$dir"); 
     fi 
fi 

dir=$(echo $dir | sed 's/ /\ /g') 
"${dir}/doctrine" "[email protected]" 

をしかし、私は、cを使用している場合:Bitnami \ wampstack-5.6.20-0 \ apache2の\ htdocsに\ WWW \ patmon2> PHPベンダーの\教義\ \ orm \ bin \ doct rine私は '../vendor/autoload.php'を含めることができないという上記のエラーを受けています。このパスに変更を加えると、ウェブサイトは機能しません。 ** ############################################################ ######## ** これは質問の古い部分です。私はindexp.php、bootstrap.phpファイルで覚えていなかった変更を加えました。また、含まれています... patmon2 /ベンダーディレクトリからphp.iniファイルへ

コマンド: c:\ Bitnami \ wampstack-5.6.20-0 \ apache2 \ htdocs \ www \ patmon2> vendor \ bin \ doctrine orm:schema -tool:更新--force --dump-SQL

Gives this output: 
<br> index.php vendorDir = **string(64) "C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\Plan2own\vendor" 
**<br> index.php baseDir = **string(57) "C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\Plan2own" 
**<br> index.php vendorDir = **string(64) "C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\Plan2own\vendor" 
**<br> index.php baseDir = **string(57) "C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\Plan2own" 
**No Metadata Classes to process. 

私はすべてのフォルダものの "Plan2own" 検索をしたし、この文字列が見つかりませんでした。私はコマンドラインで "www \ patmon2"にいます。 異なる名前空間からログを取得するのはなぜですか?私はテーブルに変換したいエンティティファイルはどこにあるのですか?

マイcompose.json

"autoload": { 
     "psr-4": { 
      "core\\" : "/src/core/", 
      "src\\monBundle\\Entity\\" : "/src/monBundle/Entity/", 
      "src\\monBundle\\Controller\\" : "/src/monBundle/Controller/", 
      "src\\monBundle\\JsonData\\" : "/src/monBundle/JsonData/", 
      "src\\monBundle\\cache\\" : "/src/monBundle/cache/", 
      "src\\monBundle\\resources\\" : "/src/monBundle/resources/" 
     }, 
     "classmap": [ 
      "src/core/App.php", 
      "src/core/View.php", 
      "src/core/Controller.php" 
     ] 
    },  

    "require": { 
     "doctrine/orm": "^2.5", 
     "symfony/console": "~2.5", 
     "twig/twig": "^1.24", 
     "filp/whoops": "^2.1" 
    } 

答えて

0

最後に、理由が間違っていたパスが含まれています。私がプロジェクトを終えると、私はgithubにアップロードします。短い C:\Bitnami\wampstack-5.6.20-0\apache2\htdocs\www\patmon2\src\bootstrap.php

私はコマンドを使用しなければならないウィンドウ上のラインrequire_once __DIR__.'/../vendor/autoload.php';(ないrequire_once '../vendor/autoload.php';

が含まれている必要がありますphp vendor\doctrine\orm\bin\doctrine(ないvendor\bin\doctrine、またはphp vendor\bin\doctrineを)。

関連する問題