class CronController extends Zend_Controller_Action
{
public function preDispatch()
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
}
}
Ultimamente sto sviluppando sempre più spesso in locale sul mio netbook il che ha comportato la scelta di wamp come piattaforma di sviluppo.
La configurazione attuale mi permette di far fronte a tutte le mie necessità (phpunit, xdebug, php debug di phped, etc), ad eccezione di un piccolo particolare: email. Siccome non ho nessuna voglia di installare un server di posta elettronica in locale (e a dir verò non ne vedo alcuna necessità) ho dovuto trovare il modo di configurare la mia applicazione zend in modo da poter usare smtp del mio account su google.
Ecco come si può procedere:
Continua…
Alcuni blog utili che parlano di Zend Framework
Appunti presi dopo la lettura di questo post
In particolare: se ci sono delle funzionalità che devono essere chiamate solo a condizione che il modulo partecipa attivamente nella richiesta, allora conviene metterli all’interno dei plugin di front controller oppure dentro gli action helper.
Se si sceglie la prima strada, un posto buono potrebbe essere rappresentato dai hook routeShutdown() oppure dispatchLoopStartup(). Basta semplicemente verificare che il modulo dentro la richiesta corrisponde a quello su cui deve essere esguita l’azione richiesta.
class Foomodule_Plugin_Layout extends Zend_Controller_Plugin_Abstract
{
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
{
if ('foomodule' != $request->getModuleName()) {
// If not in this module, return early
return;
}
// Change layout
Zend_Layout::getMvcInstance()->setLayout('foomodule');
}
}
class Foomodule_Boootstrap extends Zend_Application_Module_Bootstrap
{
protected function _initPlugins()
{
$bootstrap = $this->getApplication();
$bootstrap->bootstrap('frontcontroller');
$front = $bootstrap->getResource('frontcontroller');
$front->registerPlugin(new Foomodule_Plugin_Layout());
}
}
$router = Zend_Controller_Front::getInstance()->getRouter();
Un piccolo snipplet:
in bootstrap.php
/**
* Inizializzazione dei routes
*
*/
protected function _initRoutes(){
$this->_logger->info('Bootstrap ' . __METHOD__);
$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini', 'production');
$router = $this->getResource('frontController')->getRouter();
$router->addConfig($config, 'routes');
}
In routes.ini
[production]
routes.circolari.type = "Zend_Controller_Router_Route_Regex"
routes.circolari.route = "circolari/(.*)"
routes.circolari.defaults.controller = circolari
routes.circolari.defaults.action = index
routes.circolari.map.titololink = 1
routes.circolari.reverse = "/circolari/%s";
Parametri per url rewrite sotto lighttpd
url.rewrite-once = (
".*\?(.*)$" => "/index.php?$1",
".*\.(js|ico|gif|jpg|png|swf|css|html)$" => "$0",
"" => "/index.php"
)
Per aggiungere la compressione
#### compress module
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ("text/plain", "text/html", "text/css", "text/javascript")