【发布时间】:2010-10-08 11:42:30
【问题描述】:
我需要创建一个将使用 PHP 在命令行上运行的脚本,并且我想利用 ZF 和我使用它编写的模型(类)。如何尽可能优雅地做到这一点?
【问题讨论】:
标签: php zend-framework command-line-interface
我需要创建一个将使用 PHP 在命令行上运行的脚本,并且我想利用 ZF 和我使用它编写的模型(类)。如何尽可能优雅地做到这一点?
【问题讨论】:
标签: php zend-framework command-line-interface
你必须复制 public/index.php 的代码而不调用 Zend_Application 的 run 方法(它做 MVC 的东西)并且只加载你需要的资源。
#!/usr/bin/php
<?php
define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
set_include_path(realpath(APPLICATION_PATH . '/../library'));
require_once 'Zend/Application.php';
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
// Load only the ressources that you need
$application->getBootstrap()->bootstrap(
array(
'Db'
)
);
// Do stuff
注意调整它以适应您的 cli 脚本的位置。
【讨论】:
基本上,CLI 界面只是一个不同的表示层。如果你保持 M 与 VC 的分离干净,你所需要的只是一个新的入口点来处理模型,例如你的 CLI 界面。
您可以使用Zend_Console_Getopt 来简化 CLI 客户端的开发。它允许您快速解析传递给 CLI 脚本的输入。然后,您必须将任何输入委托给您的模型,就像您“定期”一样。
【讨论】: