I need to create a script that will run on the command line using PHP and I want to take advantage of the ZF and the models (classes) I have written using it. How do I do this as elegantly as possible?
+1
A:
Basically, a CLI interface is just a different presentation layer. If you kept the separation of your M vs VC clean, all you need is a new entry point to address the Model, e.g your CLI interface.
You can use Zend_Console_Getopt
to ease development of the CLI client. It allows you quickly parse input passed to a CLI script. You will have to delegate any input to your Model then, just like you would "regularly".
Gordon
2010-10-08 11:58:54
+1
A:
You have to duplicate the code of public/index.php without calling the run method of Zend_Application (which does the MVC stuff) and load only the resources that you need.
#!/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
Take care of adapt this to the location of your cli script.
Maxence
2010-10-09 07:55:25