如何解决通过浏览器运行的脚本运行Doctrine 2 CLI工具任务
|| 一些背景信息:我正在将Doctrine集成到CodeIgniter应用程序中。我可以使用它,但是我希望能够从浏览器(而不是从命令行脚本)运行Doctrine命令行(CLI)任务。 我之所以希望这样做,是因为我将在一个共享的主机程序包上运行Doctrine和CodeIgniter,而我将没有命令行访问权限。 这似乎是一个非常基本的功能,但是在教义2中不容易使用。 我最后的努力将进入命令行工具,弄清楚如何执行任务,然后在CodeIgniter控制器中复制该代码。 如果有任何更简单的方法,请告诉我。 谢谢! 未答复的重复发布了一段时间。解决方法
对于以下
$doctrine = \\Zend_Registry::get(\'doctrine\');
$em = $doctrine->getEntityManager();
$tool = new \\Doctrine\\ORM\\Tools\\SchemaTool($em);
获取SQL以更新当前架构:
$sqlArray = $tool->getUpdateSchemaSql($em->getMetadataFactory()->getAllMetadata());
使用当前元数据更新架构
$res = $tool->updateSchema($em->getMetadataFactory()->getAllMetadata());
创建架构。
$res = $tool->createSchema($em->getMetadataFactory()->getAllMetadata());
这属于安装脚本。只需创建并验证数据库连接
$conn = $doctrine->getConnection();
$sql = \"SELECT * FROM users\";
try {
$stmt = $conn->query($sql); // Simple (too simple?)
die(\'Already installed\');
} catch (Exception $e) {
// Table not found,continue
}
然后创建您的架构。
,您可能不想在没有命令行的情况下尝试运行命令行工具。
但是,您可以非常简单地在脚本中自己进行操作。例如,如果您想做orm:schema-tool:*做的事情,则可以从这里开始
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。