带有 Slim Framework 的 Doctrine 2.3.6:在哪里创建 doctrine_cli.php
Doctrine 2.3.6 with Slim Framework : where to create doctrine_cli.php
我目前正在尝试使用我的 Slim 应用程序设置 Doctrine。
我阅读了本指南:http://busypeoples.github.io/post/slim-doctrine/。
一切都很好,直到我点击 Adding the Doctrine Commandline Tool 部分。
它解释说我需要一个 doctrine_cli.php 文件来设置命令行工具,里面有这段代码:
<?php
require 'vendor/autoload.php';
$em = //Some code to create EntityManager
$helpers = new Symfony\Component\Console\Helper\HelperSet(array(
'db' => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($em->getConnection()),
'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em)
));
我应该在哪里创建 doctrine_cli.php ?
谢谢。
几分钟前我找到了答案。它可能会在将来帮助某人。
看来你可以把配置文件放在任何地方,只要你在相同的目录中执行命令行即可。
解释:
您可以这样调用命令行工具(参见Doctrine Documentation 以供参考):
$ vendor/bin/doctrine orm:schema-tool:create
这会在 vendor/bin/
中调用 bash 脚本,在 vendor/doctrine/orm/bin/
中调用 doctrine.php
。
在这个文件中你可以看到这一行:
$configFile = getcwd() . DIRECTORY_SEPARATOR . 'cli-config.php';
这意味着:
- Doctrine 实现使用的配置文件名为
cli-config.php
,而不是 doctrine_cli.php
。
- Doctrine搜索文件
getcwd()
,就是你执行命令行时进入的目录。
简而言之:
在any/path/you/want
中创建一个cli-config.php文件(参考Doctrine Documentation )。
<?php
require 'path/to/vendor/autoload.php';
$em = //Some code to create EntityManager
$helpers = new Symfony\Component\Console\Helper\HelperSet(array(
'db' => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($em->getConnection()),
'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em)
));
在同一目录执行你的命令行工具
$ cd any/path/you/want
any/path/you/want$ vendor/bin/doctrine orm:schema-tool:create
编辑:
对于Doctrine 2.4,也可以放在名为config
的目录下,在config
父目录
下执行命令行工具
我目前正在尝试使用我的 Slim 应用程序设置 Doctrine。
我阅读了本指南:http://busypeoples.github.io/post/slim-doctrine/。 一切都很好,直到我点击 Adding the Doctrine Commandline Tool 部分。
它解释说我需要一个 doctrine_cli.php 文件来设置命令行工具,里面有这段代码:
<?php
require 'vendor/autoload.php';
$em = //Some code to create EntityManager
$helpers = new Symfony\Component\Console\Helper\HelperSet(array(
'db' => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($em->getConnection()),
'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em)
));
我应该在哪里创建 doctrine_cli.php ?
谢谢。
几分钟前我找到了答案。它可能会在将来帮助某人。
看来你可以把配置文件放在任何地方,只要你在相同的目录中执行命令行即可。
解释:
您可以这样调用命令行工具(参见Doctrine Documentation 以供参考):
$ vendor/bin/doctrine orm:schema-tool:create
这会在 vendor/bin/
中调用 bash 脚本,在 vendor/doctrine/orm/bin/
中调用 doctrine.php
。
在这个文件中你可以看到这一行:
$configFile = getcwd() . DIRECTORY_SEPARATOR . 'cli-config.php';
这意味着:
- Doctrine 实现使用的配置文件名为
cli-config.php
,而不是doctrine_cli.php
。 - Doctrine搜索文件
getcwd()
,就是你执行命令行时进入的目录。
简而言之:
在
any/path/you/want
中创建一个cli-config.php文件(参考Doctrine Documentation )。<?php require 'path/to/vendor/autoload.php'; $em = //Some code to create EntityManager $helpers = new Symfony\Component\Console\Helper\HelperSet(array( 'db' => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($em->getConnection()), 'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em) ));
在同一目录执行你的命令行工具
$ cd any/path/you/want any/path/you/want$ vendor/bin/doctrine orm:schema-tool:create
编辑:
对于Doctrine 2.4,也可以放在名为config
的目录下,在config
父目录