Doctrine 2命令行打印Cygwin配置

时间:2015-10-29 14:15:06

标签: php doctrine-orm doctrine

我正在尝试在我的项目中使用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。

谢谢。

2 个答案:

答案 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