独自の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"
}