繁体   English   中英

从浏览器运行的脚本运行 Doctrine 2 CLI 工具任务

[英]Run Doctrine 2 CLI Tools Tasks from a script run from the browser

一些背景信息:我正在将 Doctrine 集成到 CodeIgniter 应用程序中。 我有它的工作,但我希望能够从浏览器运行 Doctrine 命令行 (CLI) 任务,即不是从命令行脚本。

我希望这样做的原因是因为我将在共享主机 package 上运行 Doctrine 和 CodeIgniter ,我将没有命令行访问权限。

这似乎是一个非常基本的功能,但 Doctrine 2 并不容易获得。

我最后的努力将是进入命令行工具并弄清楚任务是如何执行的,然后在 CodeIgniter controller 中复制该代码。

如果有任何更简单的方法可以做到这一点,请告诉我。

谢谢!

不久前发布了未答复的副本

对于以下

$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:* 所做的事情,你可以从这里开始

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM