当前位置: 首页 > 面试题库 >

从命令行运行Zend Framework操作

丌官向荣
2023-03-14
问题内容

我想从命令行运行Zend Framework操作来生成一些文件。这可能吗?我需要对使用ZF的现有Web项目进行多少更改?

谢谢!


问题答案:

实际上,它比您想象的要容易得多。引导程序/应用程序组件和您现有的配置可以与CLI脚本一起重用,同时避免了MVC堆栈和HTTP请求中调用的不必要的重量。这是不使用wget的优点之一。

按照您的公共index.php启动脚本:

<?php

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH',
              realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV',
              (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
                                         : 'production'));

require_once 'Zend/Application.php';
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/config.php'
);

//only load resources we need for script, in this case db and mail
$application->getBootstrap()->bootstrap(array('db', 'mail'));

然后,您可以像在MVC应用程序中一样继续使用ZF资源:

$db = $application->getBootstrap()->getResource('db');

$row = $db->fetchRow('SELECT * FROM something');

如果您想在CLI脚本中添加可配置的参数,请查看Zend_Console_Getopt

如果发现自己有在MVC应用程序中也要调用的通用代码,请查看将其包装在一个对象中,然后从MVC和命令行应用程序中调用该对象的方法。这是一般的良好做法。



 类似资料:
  • 问题内容: 到目前为止,我主要使用eclipse。现在,我正在尝试从终端运行Java,但程序包存在问题。 这是我的文件: 我使用编译此代码,然后运行,它给我: 当我删除一切正常。我想念什么? 给出: 问题答案: 您需要在一个目录级别上运行java命令,并以完全合格的软件包名称提供它,例如: 请参阅Java Launcher如何查找用户类 以了解其工作方式。

  • 问题内容: 我开发了OSGi捆绑包,通常通过Eclipse进行测试。在导出捆绑包之后,我得到了bundle.jar文件。我希望能够从命令行运行生成的文件。就像是: C:\ java -jar bundle.jar osgi_framework路径 但是,如何在其中包含osgi框架?而且,如何立即启动捆绑包? 问题答案: 您可以从命令行启动OSGi框架,如下所示。首先是春分: 注意 用VERSION

  • 问题内容: npm 已安装并正在IntelliJ IDEA 15中被积极使用 我的目标是在IntelliJ中为我的TypeScript源代码生成类型,但是我想学习使用Windows命令行,因此我可以显式指定命令行选项,以了解每个选项的作用。我对Googling所发现的与设置和使用它有关的各种花絮感到困惑…我敢肯定,我缺少一些非常基本的知识,那些博客或回答问题的人都认为这是常识。 。 这是我尝试过的

  • 使用 Vert.x ,通常可以直接在 Maven 或 Gradle 项目中添加 Vert.x core 库依赖。 还可以直接从命令行运行 Vert.x verticles。 做到这一点,你需要下载和安装一个 Vert.x ,并将安装的bin目录添加到PATH环境变量。还要确保PATH有 Java 8 JDK. 注意! JDK是需要支持的Java代码的即时编译。 现在可以通过使用vertx run命

  • 启动多个whistle 如果你想在同一台机器启动多个whistle,方便多个浏览器或者供多人使用,有两种方式: 切换到不同的系统用户,在每个系统用户启动一个whistle代理服务(每个服务的端口号可以用命令行参数w2 start -p xxxx来指定) 也可以通过切换规则目录和端口号的方式来解决(注意S、C都是大写, newStorageDir为空表示使用当前配置) w2 start -S new

  • 我如何通过命令行运行它?