我在 ZendFramework 2 上使用原则 2。 我已经正确配置了它们,它们都在工作。
但是,我希望使用Doctrine的命令行工具来生成实体等。
我遵循了 Doctrine 的说明,并在应用程序的根目录中创建了一个 cli-config.php 页面: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/configuration.html
然而,我在两个问题上迷失了方向; 该配置需要一个引导 PHP 页面;但是,ZendFramework 2 不使用引导页面;那么等价物是什么呢?
其次,它要求我们获得一个实体经理;下面的方法是否是获取实体经理的正确方法:
public function getEntityManager()
{
if (null === $this->em) {
$this->em = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default');
}
return $this->em;
}
下面是 CLI 配置.php页面的外观;
// cli-config.php
require_once 'my_bootstrap.php';
// Any way to access the EntityManager from your application
$em = GetMyEntityManager();
$helperSet = new SymfonyComponentConsoleHelperHelperSet(array(
'db' => new DoctrineDBALToolsConsoleHelperConnectionHelper($em->getConnection()),
'em' => new DoctrineORMToolsConsoleHelperEntityManagerHelper($em)
));
我非常感谢有关此事的任何帮助或建议。
热情的问候
安德里亚
事情已经解决了:!!
它不起作用,因为我使用的是 cygdrive 命令行。 但是,当我切换到 git bash 时,它运行良好。 使用 Git Bash,我必须使用以下命令:
C: > cd project-directory
project-dir > vendorbindoctrine-module orm:validate-schema
如果你已经使用Zend Skeleton应用程序开始了你的项目,你有一个composer.json文件。你只需要包括教义ORMModule(说明在这里)
然后,使用CMD只需键入
C: >cd project-directory
project-dir >vendor\bin\doctrine-module orm:validate-schema
给你。
一旦你设置了 doctrine2 和 zf2,你应该能够简单地运行所有 CLI 命令。
php public/index.php orm:generate-entities
使用官方文档中描述的参数。
注意:DoctrineModule
和DoctrineORMModule
需要在application.config.php
中启用
您需要使用 Composer 依赖项管理器安装doctrine/doctrine-orm-module
。为此,请cd
网站的顶级目录,然后键入以下命令:
php composer.phar require doctrine/doctrine-orm-module *
执行此命令后,DoctrineModule
和DoctrineOrmModule
将安装到您的vendor
文件夹中,并且 Doctrine 命令将变为可用。
有关DoctrineOrmModule
的详细信息,请参阅以下内容: https://github.com/doctrine/DoctrineORMModule