Ir para conteúdo

POWERED BY:

Arquivado

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

Herbert Hudson

[Resolvido] estrutura modular

Recommended Posts

Boa Tarde Galera,

 

estou tentando criar uma estrutura modular baseada nessa aqui http://framework.zen...er.modular.html, tentei utilizar o zend tool mas sem sucesso, ai tentando alterar está apresentando esse erro aqui:

Fatal error: Call to a member function getDefaultModule() on a non-object in /usr/share/php/libzend-framework-php/Zend/Application/Bootstrap/Bootstrap.php on line 89

 

 

application.ini


[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.params.prefixDefaultModule = "1"

resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

 

 

Bootstrap.php


<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{

protected $_frontController = null;

protected function _initFrontController()
{
	// Recebo uma instância do Zend_Controller_Front::getInstance();
	$this->_frontController = Zend_Controller_Front::getInstance();
	// Adicionando o diretorio dos modulos
	$this->_frontController->addModuleDirectory(APPLICATION_PATH . '/modules');
	// Definindo onde estão os controllers
	$this->_frontController->setControllerDirectory(array(
		'default' 	=> APPLICATION_PATH . '/default/controllers',
		'admin'		=> APPLICATION_PATH . '/admin/controllers'
	));
   }

protected function _initAutoLoad()
{
	$moduleLoader = new Zend_Application_Module_Autoloader(array(
		'namespace' => '',
		'basePath'	=> APPLICATION_PATH
	));

	return $moduleLoader;
}

}

 

 

alguém saberia me dizer se está faltando alguma coisa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Herbert, não há necessidade deste seu metódo initFrontController.

 

Adicione isto ao seu arquivo ini:

; Front Controller
resources.frontController.controllerDirectory	= APPLICATION_PATH'/controllers'
resources.frontController.moduleDirectory		= APPLICATION_PATH'/modules'
resources.modules[] = 

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw JCMais, mas agora está com outro erro, tirei o intFrontController, e adicionei as linhas que você passou e agora eh esta mostrando assim:

Fatal error: Call to a member function getControllerDirectory() on a non-object in /usr/share/php/libzend-framework-php/Zend/Application/Resource/Modules.php on line 69

 

de qualquer forma vou tentar refazer do zero, sem utilizar o zend_tool...

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw JCMais, mas agora está com outro erro, tirei o intFrontController, e adicionei as linhas que você passou e agora eh esta mostrando assim:

Fatal error: Call to a member function getControllerDirectory() on a non-object in /usr/share/php/libzend-framework-php/Zend/Application/Resource/Modules.php on line 69

 

de qualquer forma vou tentar refazer do zero, sem utilizar o zend_tool...

 

Cara, acho que é o melhor a se fazer, no começo eu utilizei o zend_tool, mas o que era para ajudar acabou foi atrapalhando, ainda mais quando se quer uma aplicação complexa, neste caso, o melhor é fazer tudo a mão mesmo. ;)

 

Sobre o erro, verifique se o caminho para os controllers estão corretos, e jogue o resources.modules[] = "" para o topo do arquivo de configuração.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw JCMais,

consegui aqui, rodando belezinha, refiz do zero ficou perfeito, aqui como ficou o application.ini


[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"


resources.modules[]=


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


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


resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.layout.layout = "default"


[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1


[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

não testei ainda o modulo admin, mas acho que não tem erro...

vlw ai pela ajuda...

abração men...

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.