作为一个 ZF 菜鸟,我想我理解 OP 试图弄清楚的一些内容。所以,我只是解释一下我的理解,希望它对 OP 有帮助(或者更有可能对未来的读者有帮助,因为原来的问题太老了,我想 OP 现在是 ZF大师)。
我了解 ZF 声称主要是“随意使用”,因此您无需购买整个结构,例如 Zend_Application、Zend_Bootstrap 类、整个 MVC 方法等。
此外,我了解能够轻松自动加载的类命名和文件位置的约定。例如:class App_Model_User
驻留在文件夹中App/Model/User.php
我认为可能令人困惑的是,在脚本上下文中,您还没有
- 完成了将所有请求推送到的 .htaccess 魔术
public/index.php
- 设置您的
APPLICATION_PATH
并包含路径public/index.php
- 创建了绑定到配置文件的
Application
或对象Bootstrap
可能有点不清楚如何最好地利用我们在这种情况下获得的大部分 ZF 优点,并在另一种情况下想要。
我想我对原始问题的回答是通常的入口点序列
http 请求 -> .htaccess -> index.php -> 配置
为我们设置了大部分环境,我们需要为不同的入口路径复制其中的一些。
因此,对于您的脚本,我的第一反应是创建一个通用的包含文件,以反映 index.php 中发生的大部分内容 - 设置包含路径、APPLICATION_PATH、实例化并调用引导程序,然后执行特定于脚本的处理.
更好的是,可能需要为所有脚本创建一个入口点,就像我们在 http/web 上下文中所做的那样。为您自己的脚本目的扩展 Zend_Application 以便$application->run();
不再启动 MVC 路由器-控制器-调度处理,而是做您自己的事情。这样,这个单一的脚本入口点看起来几乎与 Web 入口点相同,唯一的区别是实例化了哪个应用程序对象。然后将所需的应用程序类的名称作为命令行参数传递给脚本。
但在这里,我承认自己不那么自信,只是抛出了一些想法。
希望这一切对某人有所帮助。它实际上帮助我把它写下来。谢谢和欢呼!
2009-09-29 更新:刚刚看到这篇文章:从命令行使用 Zend Framework
2009-11-20 更新:另一篇文章:Zend 框架中的 Cron 作业 | GS设计
2010-02-25 更新: 使用 Zend 应用程序的简单命令行脚本 - David Caunt