Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从条令2中现有的数据库自动生成xml或yaml映射器。。。但不使用cli_Xml_Zend Framework_Doctrine Orm_Auto Generate_Mappers - Fatal编程技术网

如何从条令2中现有的数据库自动生成xml或yaml映射器。。。但不使用cli

如何从条令2中现有的数据库自动生成xml或yaml映射器。。。但不使用cli,xml,zend-framework,doctrine-orm,auto-generate,mappers,Xml,Zend Framework,Doctrine Orm,Auto Generate,Mappers,我是ORM世界的新手,并将条令2与zf项目集成。我已经阅读了条令文档和各种文章,并将其整合为:) 我有一个现有的数据库,从中我可以生成我的映射器和实体。我愿意使用XML/YAML映射器而不是默认注释 我在任何地方都能看到CLI命令,通过在存在“doctor.php(在doctor官方文档中提供)”文件的bin目录中执行以下命令来生成映射器和实体 生成映射器: *php doctrine orm:convert-mapping --from-database xml /path

我是ORM世界的新手,并将条令2与zf项目集成。我已经阅读了条令文档和各种文章,并将其整合为:)

我有一个现有的数据库,从中我可以生成我的映射器和实体。我愿意使用XML/YAML映射器而不是默认注释

我在任何地方都能看到CLI命令,通过在存在“doctor.php(在doctor官方文档中提供)”文件的bin目录中执行以下命令来生成映射器和实体

生成映射器:

         *php doctrine orm:convert-mapping --from-database xml  /path/to/mappers*
生成实体/模型类:

         *./doctrine orm:generate-entities /path/to/models/or/entities*
但是我不想执行命令并生成映射器/实体。我正在寻找一个PHP脚本,它可以为我实现这一点(通过调用控制器中的操作方法,例如:www.doctrineproj.com/admin/mdoels/autogenerate/

我们是否有任何API类或任何方法通过php代码来实现这一点,而不是执行CLI脚本。 可能是打个电话

生成映射程序:doctrine_core::generateMappers(dbParams,mapperDriver)

生成实体:原则\u核心::生成实体(元数据)

是否有任何方法可以使用类似系统的调用从php脚本文件执行所有CLI命令

我尝试使用上述cli命令使用exec()和system()。但效果不好:(

下面是我用来从action方法生成映射器的代码

公共函数自动生成(){

}

但是上面的代码并不是在目标目录中创建映射程序

请建议我一个最佳的解决方案,使用自动php脚本从DB自动生成映射器和实体

期待一个最好的解决方案

谢谢 Raj

尝试下一步(在控制器的某些方法中):

     $result = array();
    //change the current working DIR to bin
    $cliPath = "cd ". APPLICATION_PATH . "/bin";
    exec($cliPath,$result);

    //construct the CMD to generate the XML files from the DB tables
    $mapperDir = APPLICATION_PATH. "/models/entities/xml-mapper/";
    $mapperType = "xml";

    $generateMappersCmd = "php doctrine orm:convert-mapping --from-database  " . $mapperType . ' '  . $mapperDir ;

    //execute the CMD
    $result = system($generateMappersCmd);
$kernel = $this->get('kernel');
$application = new \Symfony\Bundle\FrameworkBundle\Console\Application($kernel);
$application->setAutoExit(false);

$options = array(
    'command' => 'doctrine:generate:entity',
    '--entity' => "SomeDemoBundle:YourEntityName",
    '--fields' => "name:string(255) price:float description:text",
    '--with-repository' => true,
    '--format' => 'xml',
);

$fp = tmpfile();
$out = new StreamOutput($fp);
$in = new \Symfony\Component\Console\Input\ArrayInput($options);
$in->setInteractive(false);
$application->run($in, $out);