Spyder.RV 0 Denunciar post Postado Março 1, 2011 Estou começando co o zend framework e estou com uma dúvida sobre a estrutura de diretórios das urls... minha aplicação está rodando em http://localhost/zend/ e quando rodo qualquer coisa relacionada ao IndexController funciona muito bem... posso ter diversas actions dentro dele que as views são mostradas 100%. IndexController.php class IndexController extends Zend_Controller_Action{ public function indexAction(){ $this->view->dadosIndex = 'CONTEUDO'; } public function produtoAction(){ $this->view->dadosProduto = 'PRODUTO'; } } View: index/index.phtml <?=$this->dadosIndex;?> View: index/produto.phtml <?=$this->dadosProduto;?> Endereço: http://localhost/zend/ Retorno: Roda normalmente... O problema é quando parto para outro controller... quando eu chamo o mesmo recebo um aviso que o diretório não existe... olha só: TesteController.php class TesteController extends Zend_Controller_Action{ public function indexAction(){ $this->view->dadosTeste = 'TESTE'; } } View: teste/index.phtml <?=$this->dadosTeste;?> Endereço: http://localhost/zend/teste Retorno: Not Found The requested URL /zend/teste was not found on this server. Segue também meu .htaccess RewriteEngine on RewriteRule !\.(js|ico|gif|jpg|png|css|swf|flv)$ index.php Como faço pra corrigir? Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Março 1, 2011 O projeto foi criado pelo Zend_Tool como eu te indiquei ontem ou foi feito na mão? Se foi feito na mão, poste a estrutura dos diretórios na forma que está agora. Tente acessar a página de algumas formas: http://localhost/zend/index/index http://localhost/zend/index/produto http://localhost/zend/index.php/teste http://localhost/zend/index.php/teste/index Poste aqui o que aconteceu em cada um deles. Está rodando em Apache ou IIS? Com isto podemos começar a achar a solução. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Spyder.RV 0 Denunciar post Postado Março 1, 2011 Foi criado na mao... segue a estrutura Tente acessar a página de algumas formas: http://localhost/zend/index/index Resultado: CONTEUDO http://localhost/zend/index/produto Resultado: PRODUTO http://localhost/zend/index.php/teste Resultado: TESTE http://localhost/zen...php/teste/index Resultado: TESTE Estou usando Apache (VertrigoServ). Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Março 2, 2011 Não tem application.ini? Porque o Boostrap.php está na pasta pública? Qual a versão do Zend que você está utilizando? Poste o Boostrap.php e o index.php aqui. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Spyder.RV 0 Denunciar post Postado Março 2, 2011 Não tem application.ini? Porque o Boostrap.php está na pasta pública? Qual a versão do Zend que você está utilizando? Poste o Boostrap.php e o index.php aqui. Carlos Eduardo Não tem application.ini? - Ainda não... tô só testando... Porque o Boostrap.php está na pasta pública? Porque eu coloquei no local errado... já corrigi Qual a versão do Zend que você está utilizando? Como estou estudando umas video aulas em portugues, estou usando a versão da video aula( Versão 1.6 ) Seguem os arquivos: index.php <?php require_once '../application/Bootstrap.php'; $bootstrap = new Bootstrap(); $bootstrap->run(); application/Bootstrap.php Algumas linhas estão comentadas por questão de não estar usando ainda... como a parte de layout, config e banco de dados.. <?php /* 1- Setar a include path */ set_include_path ( '.' . PATH_SEPARATOR . './' . PATH_SEPARATOR . '../library' . PATH_SEPARATOR . '..//application/default/models' . PATH_SEPARATOR . get_include_path () ); /* 2 - referenciar o ZF */ require_once 'Zend/Loader.php'; /* 3 - Definir a classe bootstrap */ class Bootstrap { /* Principais atributos do Bootstrap */ public static $frontController = null; public static $root = ''; /* Nivel mais alto da estrutura de pastas */ public static $registry = null; public static function run() { self::prepare (); $response = self::$frontController->dispatch (); self::sendResponse ( $response ); } public static function prepare() { self::setupEnvironment (); Zend_Loader::registerAutoload (); //self::setupRegistry (); //self::setupConfiguration (); self::setupFrontController (); self::setupView (); //self::setupDatabase (); } public static function sendResponse(Zend_Controller_Response_Http $response) { $response->setHeader ( 'Content-Type', 'text/html; charset=UTF-8', true ); $response->sendResponse(); } public static function setupEnvironment() { error_reporting ( E_ALL | E_STRICT ); ini_set ( 'display_errors', true ); date_default_timezone_set ( 'America/Sao_Paulo' ); self::$root = "../"; } public static function setupRegistry() { self::$registry = new Zend_Registry ( array (), ArrayObject::ARRAY_AS_PROPS ); Zend_Registry::setInstance ( self::$registry ); $registry = Zend_Registry::getInstance (); $registry->set ( 'root', self::$root ); } public static function setupConfiguration() { $config = new Zend_Config_Ini ( self::$root . 'config/config.ini', 'desenvolvimento' ); self::$registry->configuration = $config; $session = Zend_Registry::getInstance (); $session->set ( 'config', $config ); } public static function setupFrontController() { self::$frontController = Zend_Controller_Front::getInstance (); self::$frontController->throwExceptions ( true ); self::$frontController->returnResponse ( true ); self::$frontController->setControllerDirectory ( array ('default' => self::$root . 'application/default/controllers') ); } public static function setupView() { $view = new Zend_View ( ); $view->setEncoding ( 'UTF-8' ); /* Zend_Layout::startMvc ( array ( 'layoutPath' => self::$root . 'application/default/views/layouts', 'layout' => 'layout' ) ); */ $registry = Zend_Registry::getInstance(); $registry->set('view',$view); } public static function setupDatabase() { $config = self::$registry->configuration; $db = Zend_Db::factory ( $config->db->adapter, $config->db->toArray () ); $db->query ( "SET NAMES 'utf8'" ); self::$registry->database = $db; Zend_Db_Table::setDefaultAdapter ( $db ); } } Compartilhar este post Link para o post Compartilhar em outros sites
Spyder.RV 0 Denunciar post Postado Março 2, 2011 Eu encontrei o problema... tava no meu .htaccess RewriteEngine on RewriteBase /zend/ RewriteRule !\.(js|ico|gif|jpg|png|css|swf|flv)$ index.php Compartilhar este post Link para o post Compartilhar em outros sites