Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, estou com uma dúvida meio facil pra quem já mexe com ZF ha algum tempo.
Eu ja fiz alguns sistema utilizando o Zend e foi tudo perfeito, poréma gora me veio a necessidade de faze-los separados por módulos.
Minha estrutura de arquivos está assim (dentro da pasta raiz/lbsistema/ está assim):
/applications/core/interface/imageproxy/imageproxy.php?img=http://i493.photobucket.com/albums/rr292/leandrobarral/forum/estrutura.jpg&key=ad65b678a9da0d40900e08fe25fa825fbef2fe903f0fc2401ea6b020a2c84276" alt="Imagem Postada" />
Meu arquivo index.php (retirei todos os comentarios pra melhor visualizaçao)
<?php
error_reporting(E_ALL | E_STRICT);
$operatingSystem = stripos($_SERVER['SERVER_SOFTWARE'],'win32') !== FALSE ?
'WINDOWS' : 'LINUX';
$bar = $operatingSystem == 'WINDOWS' ? '\\' : '/';
$pathSeparator = $operatingSystem == 'WINDOWS' ? ';' : ':';
$documentRoot = $operatingSystem == 'WINDOWS' ?
str_replace('/','\\',$_SERVER['DOCUMENT_ROOT']) : $_SERVER['DOCUMENT_ROOT'];
$pastaSistema = 'lbsistemas';
$path = $pathSeparator.$documentRoot.$bar.'library'.$bar;
$path .= $pathSeparator.$documentRoot.$bar.'library'.$bar.'Zend';
$path .= $pathSeparator.$documentRoot.$bar.basename(getcwd())
.$bar.'application'.$bar.'models';
$path .= $pathSeparator.$documentRoot.$bar.basename(getcwd())
.$bar.'application'.$bar.'admin'.$bar.'models';
$path .= $pathSeparator.$documentRoot.$bar.basename(getcwd())
.$bar.'application'.$bar.'noticias'.$bar.'models';
$path .= $pathSeparator.$documentRoot.$bar.$pastaSistema.
$bar.'public'.$bar.'includes'.$bar;
set_include_path(get_include_path().$path);
include('Loader/Autoloader.php');
Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);
Zend_Registry::set('post', new Zend_Filter_Input(NULL,NULL,$_POST));
Zend_Registry::set('get', new Zend_Filter_Input(NULL,NULL,$_POST));
$view = new Zend_View();
$view->setEncoding('ISO-8859-1');
$view->setEscape('htmlentities');
Zend_Registry::set('view', $view);
$laylocal = $documentRoot.$bar.$pastaSistema.
$bar.'application'.$bar.'views'.$bar;
Zend_Registry::set('laylocal', $laylocal);
Zend_Session::start();
Zend_Registry::set('session', new Zend_Session_Namespace());
$baseUrl = substr($_SERVER['PHP_SELF'], 0, strpos($_SERVER['PHP_SELF'], '/index.php'));
$frontController = Zend_Controller_Front::getInstance();
$frontController->setBaseUrl($baseUrl);
$frontController->setControllerDirectory('./application/noticias/controllers');
$frontController->addControllerDirectory('./application/admin/controllers', 'admin');
$frontController->throwExceptions(TRUE);
$config = new Zend_Config_Ini('./application/config.ini', 'database');
Zend_Registry::set('config', $config);
$db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
Zend_Db_Table_Abstract::setDefaultAdapter($db);
Zend_Registry::set('db', $db);
setlocale(LC_ALL, 'BRA');
date_default_timezone_set('America/Sao_Paulo');
Zend_Layout::startMvc();
$frontController->dispatch();RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(gif|jpg|png|css|js|controller.php|tpl|trans.php|service.php)$ index.php
AddDefaultCharset iso8859-1
php_flag magic_quotes_gpc off
php_flag register_globals off
E os controladores estão seguindo o padrão: Nomemodulo_NomecontroladorController extends...
ex:
class Noticias_IndexController extends Zend_Controller_Action
{
function init()
{
$this->view->baseUrl = $this->_request->getBaseUrl();
}
public function indexAction()
{
$this->view->titulo = "Pagina Inicial";
}
}Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller class ("IndexController")' in /home/leandrob/public_html/library/Zend/Controller/Dispatcher/Standard.php:344 Stack trace: #0 /home/leandrob/public_html/library/Zend/Controller/Dispatcher/Standard.php(255): Zend_Controller_Dispatcher_Standard->loadClass('IndexController') #1 /home/leandrob/public_html/library/Zend/Controller/Front.php(945): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #2 /home/leandrob/public_html/lbsistemas/index.php(146): Zend_Controller_Front->dispatch() #3 {main} thrown in /home/leandrob/public_html/library/Zend/Controller/Dispatcher/Standard.php on line 344
Ele não está achando o controlador Index, mas pelo arquivo index.php ele nao teria q redirecionar pro modulo noticias?
Agradeço qualquer ajuda possivel!
Espero ter sido claro e dado os dados necessários.
Abraço.
Att.,
Leandro Barral.
Carregando comentários...