School of Net

Evolua constantemente, Online

Membros SON


Bootstrap organizado com Zend Framework -

Desenvolvimento — Tags: , , — Wesley Willians @ 9:19

Quando temos um projeto, e sabemos que o mesmo vai crescer, temos que criar tudo da forma mais flexível possível. No caso do Zend Framework o “Bootstrap” ou arquivo de configuração inicial é um bom começo para criamos de uma forma bem feita. (by Pádraic Brady).

Abaixo segue tal sugestão:

[sourcecode language='php']

require_once 'Zend/Loader.php';

class Bootstrap
{

public static $frontController = null;

public static $root = '';

public static $registry = null;

public static function run()
{
self::prepare();
$response = self::$frontController->dispatch();
self::sendResponse($response);
}

public static function setupEnvironment()
{
error_reporting(E_ALL|E_STRICT);
ini_set(‘display_errors’, true);
date_default_timezone_set(‘Europe/London’);
self::$root = dirname(dirname(_FILE_));
}

public static function prepare()
{
self::setupEnvironment();
Zend_Loader::registerAutoload();
self::setupRegistry();
self::setupConfiguration();
self::setupFrontController();
self::setupView();
self::setupDatabase();
}

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/controllers’,
‘admin’ => self::$root . ‘/application/admin/controllers’
)
);
self::$frontController->setParam(‘registry’, self::$registry);
}

public static function setupView()
{
$view = new Zend_View;
$view->setEncoding(‘UTF-8′);
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
Zend_Layout::startMvc(
array(
‘layoutPath’ => self::$root . ‘/application/views/layouts’,
‘layout’ => ‘common’,
‘pluginClass’ => ‘ZFBlog_Layout_Controller_Plugin_Layout’
)
);
}

public static function sendResponse(Zend_Controller_Response_Http $response)
{
$response->setHeader(‘Content-Type’, ‘text/html; charset=UTF-8′, true);
$response->sendResponse();
}

public static function setupRegistry()
{
self::$registry = new Zend_Registry(array(), ArrayObject::ARRAY_AS_PROPS);
Zend_Registry::setInstance(self::$registry);
}

public static function setupConfiguration()
{
$config = new Zend_Config_Ini(
self::$root . ‘/config/config.ini’,
‘general’
);
self::$registry->configuration = $config;
}

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);
}
}
[/sourcecode]


4 Comentários »

  1. Muito interessante, seria muito lhe pedir um exemplo do uso dessa classe??
    Valew

    Comentário by Willian Rocha — 26/07/2008 @ 12:56

  2. Olá Wollian,
    Na realidade, ela já está praticamente pronta.
    Basta dar uma include no index.php e:
    $bootstrap = new Bootstrap;
    $bootstrap->run();

    Caso não consiga rodar, me informe o erro ou a dúvida ok?

    Comentário by Wesley — 26/07/2008 @ 13:55

  3. Estou com ZF 1.11.7 Gostaria de saber como configurar para essa nova versão.

    Comentário by Leonardo — 02/07/2011 @ 13:19

  4. Trabalhe com a zend_tool

    Comentário by Wesley Willians — 04/07/2011 @ 11:41

Feed RSS para comentários sobre este post. TrackBack URL


Deixe um comentário