Ir para conteúdo

POWERED BY:

Arquivado

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

GuilhermeFlores

[Resolvido] Diretórios do Zend

Recommended Posts

Boa tarde.

 

Sou iniciante no Zend e estou com um problema. Meu problema é o seguinte...

 

Minha aplicação está divida com os diretórios assim:

dirzend.jpg

 

A questão é a seguinte:

Eu preciso que um método do enotaController redirecione para um controlador dentro do diretório /enota/'urldocontrolador'/action, mas não está funcionando, o redirect está enviando para o enotaController com uma action do que deveria ser o controlador. O erro que aparece é:

 

"Action 'urldocontrolador' does not exist and was not trapped in __call()"

isso significa que não tem a action do enotaController, mas o que eu queria é que procurasse no controlador dentro do diretório enota

 

desde já, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, nunca vi uma estrutura assim. O que está dentro do diretório enota tem relação com o EnotaController? Se sim, isto não seria na verdade um módulo? Como você tentou fazer? Como você faz para acessar os controller dentro da pasta enota diretamente (qual URL que você digita)?

 

Os controllers devem ter nomes como UpperCamelCase. Ou seja, DocumentosfiscaisController deveria ser DocumentosFiscaisController, sendo acessado por site.com.br/documentos-fiscais.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, nunca vi uma estrutura assim. O que está dentro do diretório enota tem relação com o EnotaController? Se sim, isto não seria na verdade um módulo? Como você tentou fazer? Como você faz para acessar os controller dentro da pasta enota diretamente (qual URL que você digita)?

 

Os controllers devem ter nomes como UpperCamelCase. Ou seja, DocumentosfiscaisController deveria ser DocumentosFiscaisController, sendo acessado por site.com.br/documentos-fiscais.

 

Carlos Eduardo

 

Boa tarde Carlos Eduardo.

Estou me baseando de acordo com o livro do Flávio Gomes da Silva Lisboa - Zend Framework - Desenvolvendo PHP 5 orientado a objetos com MVC para fazer a estrutura de pastas. Sim, creio que seja um módulo, tenho um sistema que 'engloba' outros dois.

 

Hoje funciona assim: http: //localhost/sep/sep/controller/action, e eu preciso que fique http: //localhost/sep/sep/modulo/controller/action

Na maneira que eu preciso ele interpreta o módulo como controlador.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu quando vou trabalhar com módulos, faço assim:

 

/application
/configs
/models
/modules
	/admin
		/controllers
			/helpers
			IndexController.php
		/views
			/helpers
			/scripts
				/index
					index.phtml
	/default
		/controllers
			/helpers
			IndexController.php
		/views
			/helpers
			/scripts
				/index
					index.phtml
/plugins
/translate
Boostrap.php
/public_html
/imagens
/script
/estilos
index.php

 

Em um módulo chamado admin, por exemplo, o controller ali dentro fica:

 

IndexController.php

class Admin_IndexController extends Zend_Controller_Action {

 

Veja que apesar de o módulo ser admin (tudo minúscula) a classe começa com Admin, separado por _ do nome do controller.

 

No application.ini eu utilizo:

 

resources.frontController.controllerDirectory = APPLICATION_PATH "/modules/default/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.defaultModule = "default" 

resources.view.basePath = APPLICATION_PATH "/modules/default/views"

 

Assumindo que o módulo padrão seja default (como está no application.ini e na estrutura de diretórios que eu coloquei), nestes controller não vai o Default_ no início e não precisa colocar o nome do módulo para acessar. Então:

 

site.com.br/ => módulo default => controller Index => action index

site.com.br/contato => módulo default => controller Contato => action index

site.com.br/admin/ => módulo admin => controller Index => action index

site.com.br/admin/e-nota => módulo admin => controller ENota => action index

 

Compreendeu a lógica?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora sim entendi a logica de como funciona, estava um tanto quanto perdido em relação a isso...

 

vou testar amanha(sabado) e coloco aqui qual resultado deu...

 

muito obrigado pela resposta, foi de grande ajuda.

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.