Julho 28th 2007 05:18 pm
Zend Framework - MVC na linha de comando
Neste post apresentarei um exemplo que criei para utilizar as funcionalidades do MVC do Zend Framework com uma interface na linha de comando, basicamente o que fiz foi integrar o módulo Zend_Console com o módulo Zend_Controller, de maneira que fosse possível mapear as opções vindas da variável $_SERVER['argv'] para as actions, para isso foi preciso estender as classes Zend_Controller_Request_Abstract e Zend_Controller_Router_Rewrite.
A classe default que o framework utiliza para tratar as requisições feitas ao front é a Zend_Controller_Request_Http. Para tratar as requisições feitas na linha de comando criei uma classe chamada Controller_Request_Cli, onde adiciono os parametros vindos da linha de comando ex.: arquivo.php -c -f -t --option valor como parametros da requisição, de maneira similar a uma requisição http, onde são adicionados os parametros http://www.example.com/arquivo.php?c=1&f=2&option=valor.
-
<?php
-
-
class Controller_Request_Cli extends Zend_Controller_Request_Abstract {
-
-
protected $_opts;
-
-
public function addGetopt(Zend_Console_Getopt $opts) {
-
$this->_opts = $opts;
-
$this->_handleOptions();
-
}
-
-
protected function _handleOptions() {
-
$opts = $this->_opts->getOptions();
-
foreach ($opts as $option) {
-
if ($option != 'command') {
-
$this->setParam($option, $this->_opts->getOption($option));
-
}
-
}
-
}
-
-
public function getComandInfo() {
-
return $this->_opts->getOption('command');
-
}
-
}
No Comments yet »













