Zend Framework

Bootstrap organizado com Zend Framework

Por em

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]