我正在尝试在我的项目中使用Doctrine 2,但是当我尝试访问命令行以从我的数据库导入实体以生成文件时,它会打印来自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.php" "$@"
我的文件夹结构:
src/
vendor/
bootstrap.php
cli-config.php
composer.json
composer.lock
index.php
bootstrap.php中
<?php
require_once "vendor/autoload.php";
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
$paths = array("src/Entity");
$isDevMode = false;
// the connection configuration
$dbParams = array(
'driver' => 'pdo_mysql',
'user' => '',
'password' => '',
'dbname' => '',
);
$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
$entityManager = EntityManager::create($dbParams, $config);
CLI-config.php中
<?php
use Doctrine\ORM\Tools\Console\ConsoleRunner;
// replace with file to your own project bootstrap
require_once 'bootstrap.php';
// replace with mechanism to retrieve EntityManager in your app
$entityManager = GetEntityManager();
return ConsoleRunner::createHelperSet($entityManager);
我正在尝试在命令行中使用:php vendor/bin/doctrine --help
。我也在使用Vagrant和Ubuntu 14.01。
我没有使用Symfony 2,只是尝试在没有任何框架的情况下安装Doctrine。
谢谢。
答案 0 :(得分:6)
我在Windows安装程序中遇到了同样的错误,这个命令解决了它:
php vendor/doctrine/orm/bin/doctrine.php orm:schema-tool:create
<强>来源:强> http://www.agevaled.com/2013/10/09/doctrine2-getting-started-issues/2147483647/
答案 1 :(得分:0)
在Windows上,要运行的正确命令是:
vendor/bin/doctrine.bat