我尝试将Doctrine 2配置为项目的外部lib。 因此,我通过Composer安装它,并按照Doctrine文档中的说明进行操作。命令行确实无效。
以下是我的Bootstrap中Doctrine的部分:
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
/* Instantiation of doctrine
---------------------------------------------------------------------------------------------------------------------*/
$paths = array(__DIR__."/Application/Entity");
$isDevMode = true;
// the connection configuration
$dbParams = Yaml::parse(file_get_contents('Application/Config/Private/bdd.yml'));
$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
$em = EntityManager::create($dbParams, $config);
/*--------------------------------------------------------------------------------------------------------------------*/
以下是我的cli-config.php文件的内容(在项目根目录中):
use Doctrine\ORM\Tools\Console\ConsoleRunner;
require_once 'index.php'; // my bootstrap
return ConsoleRunner::createHelperSet($em);
所以,现在,文档说我可以在控制台模式下使用Doctrine键入: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" "$@"
php工作正常,我尝试安装symfony项目(测试命令行)和命令行使用Symfony。所以,我认为问题来自于Doctrine的安装/配置。
我不知道我错过了什么,但我不能通过命令行使用Doctrine。有人有想法吗?
答案 0 :(得分:0)
您正在调用的学说命令不是PHP文件,而是shell脚本。
改为调用./vendor/bin/doctrine
,它应该按预期工作。