Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Spyder.RV

[Resolvido] Erro de iniciante

Recommended Posts

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

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

Foi criado na mao... segue a estrutura

2e18v46.jpg

 

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.