Ir para conteúdo

POWERED BY:

Arquivado

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

Leandro Barral

[Resolvido] 2 Aplicações

Recommended Posts

Gostaria de saber como faço para separar a parte administrativa da parte do usuário.

Ouvi dizer que tem como colocando 2 aplicações na pasta app/application .

 

Gostaria de saber como proceder para fazer a configuração disso e tal.

 

Desde já obrigado!

 

Att,

 

Leandro Barral []'..

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce deve configurar o setControllerDirectory, dai la você coloca seus modulos ou aplicacoes separadas veja um exemplo:

 

 

$front->setControllerDirectory(array(

'default' => '../application/controllers',

'blog' => '../modules/blog/controllers',

'news' => '../modules/news/controllers',

));

 

estrutura das pastas:

 

application
default
	controllers
	models
	views

blog
	controllers
	models
	views

news
	controllers
	models
	views

 

mais detalhes:

 

http://framework.zend.com/manual/en/zend.c...ller.front.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

como ficaria os links para cada aplicação?

 

site.com/blog/index

 

site.com/news/index

 

e assim por diante?

 

essa configuração é colocada no bootstrap né?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim os links estao certos e sobre o bootstrap é um meio de fazer, eu por exemplo nao uso o bootstrap porque meu index ja faz isso

e do jeito que o padrao zend trabalha ele so redireciona o index para o bootstrap e pra mim nao é necessario

 

mas eu uso o plugin Initializer.php e defino todas as configuracoes por la

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia passar o codigo desse pluggin?

 

Acho que não precisa de muita explicação não, tenho uma noção já da ferramenta! =D

 

Abraço.

 

Att,

 

Leandro Barral []'..

Compartilhar este post


Link para o post
Compartilhar em outros sites

index.php

 

<?php
define('DS', DIRECTORY_SEPARATOR);
define('PS', PATH_SEPARATOR);

set_include_path('.'
. PS . 'library'. DS
. PS . 'application'. DS .'plugins'. DS
. PS . 'application'. DS .'default'. DS .'models'. DS
. PS . 'includes' . DS
. PS . get_include_path());

if(!file_exists("library/Zend/Loader.php")){
die("Erro nao foi localizado o arquivo <b>\"library/Zend/Loader.php\"</b>");
} 
require_once 'Zend/Loader.php';

try {
Zend_Loader::registerAutoload();

Zend_Controller_Front::getInstance()
	->registerPlugin(new Initializer('debug'))
	->dispatch();
} catch (Zend_Exception $e) {
echo get_class($e) . "<br />";
echo "Mensagem: " . $e->getMessage();
}

 

Initializer.php

 

<?php

class Initializer extends Zend_Controller_Plugin_Abstract
{
protected $_front;

public function __construct($env)
{
	$this->_front = Zend_Controller_Front::getInstance();

	if ($env == 'debug') {
		error_reporting(E_ALL | E_STRICT);  
		ini_set('display_startup_errors', true);  
		ini_set('display_errors', true); 

		$this->_front->throwExceptions(true);  
	}
}

public function routeStartup(Zend_Controller_Request_Abstract $request)
{
	$this->initPhpValid();
	$this->initPhpConfig();	 		
	$this->initPlugins();
	$this->initDb();
	$this->initControllers();
	$this->initView();
}	

public function initPhpValid()
{
	if (version_compare(phpversion(), 5) === '-1') {
		die('É necessario ter PHP 5 ou superior');
	}
	if (!extension_loaded('pdo')) {
		die('É necessario o modulo PDO');
	}
	if (!extension_loaded('pdo_mysql')) {
		die('É necessario o modulo pdo_mysql');
	}
}

public function initPhpConfig()
{
	setlocale(LC_ALL, 'pt_BR');
	date_default_timezone_set('America/Sao_Paulo');

	if (function_exists('set_magic_quotes_runtime')) {
		@set_magic_quotes_runtime(0);
	}

	if (ini_get('register_globals')){
		foreach($GLOBALS as $s_variable_name => $m_variable_value){
			if (!in_array($s_variable_name, array('GLOBALS', 'argv', 'argc', '_FILES', '_COOKIE', '_POST', '_GET', '_SERVER', '_ENV', '_SESSION', 's_variable_name', 'm_variable_value'))){
				unset($GLOBALS[$s_variable_name]);
			}
		}
		unset($GLOBALS['s_variable_name']);
		unset($GLOBALS['m_variable_value']);
	}		
}

public function initDb()
{
	Zend_Registry::set('config', new Zend_Config(require_once 'config_db.php'));		
}

public function initPlugins()
{
	$this->_front->registerPlugin(new LayoutPlugin());
	$this->_front->registerPlugin(new SecurityPlugin());		
}

public function initControllers()
{
	$this->_front->setControllerDirectory('application'. DS .'default'. DS .'controllers');
}

public function initView()
{
	Zend_Layout::startMvc();		
}	
}
?>

 

com esse plugin eu faço as verificaçoes, validacoes nescessarias, incluo o resto dos plugins, e ainda fica dinamico se eu quero debugar o codigo ou colocar em produçao

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.