Loader

Postado 24 de fevereiro de 2010 Por Marco A. Braghim

Ao iniciar um aplicativo você precisará carregar as configurações básicas. Para isso usamos o Codepass_Loader (Codepass/Loader.php).

Bem, inicie no arquivo /public/index.php (recomendamos apontar seu DocumentRoot para a pasta public pois assim garantimos uma segurança a mais em seu aplicativo)

-

include_once('../library/Codepass/Loader.php');

// Loader Instance
$application = new Codepass_Loader();

-

Já que está aqui, talvez você esteja buscando saber como fazer para iniciar seu aplicativo PHP com Codepass Framework. Se esta é a sua intenção então acesse Getting Started

Vamos explanar aqui todos os métodos disponíveis nesta classe para setar as configurações de seu aplicativo:

__construct

Construtor da classe, não recebe parâmetros.

setLibrary

String. Seta caminho para a biblioteca de arquivos PHP. Por padrão “../library/”

getLibrary

Retorna o caminho para a biblioteca de arquivos PHP

setIniFile

String. Seta o caminho/nome.ini do principal arquivo de configurações do sistema. Por padrão “../configs/application.ini”

getIniFile

Retorna o arquivo de configurações do sistema.

setEnvironment

String. Seta o ambiente de execussão do applicativo, isso para se poder ter configurações diferentes em diversos tipos de ambientes diferentes de forma automática. Por padrão “development”

getEnvironment

Retorna ambiente de execussão do applicativo.

setDbConfigs

Seta configurações para conexão com o banco de dados. A conexão com o banco de dados é feita através da classe PDO (http://php.net/PDO). Ou seja, automaticamente Codepass Framework está configurado para aceitar conexão com diversos tipos diferentes de banco de dados de acordo com a lista:

PDO_CUBRID 	Cubrid
PDO_DBLIB 	FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD 	Firebird/Interbase 6
PDO_IBM 	IBM DB2
PDO_INFORMIX 	IBM Informix Dynamic Server
PDO_MYSQL 	MySQL 3.x/4.x/5.x
PDO_OCI 	Oracle Call Interface
PDO_ODBC 	ODBC v3 (IBM DB2, unixODBC and win32 ODBC)
PDO_PGSQL 	PostgreSQL
PDO_SQLITE 	SQLite 3 and SQLite 2
PDO_4D		4D

Infelizmente, por uma questão de estrutura, ainda nao foi possível testar conexão com todos os tipos de bancos de dados listados acima. Para nos ajudar com isso, se você trabalha com um tipo diferente de banco de dados que não seja MySql e encontrar alguma dificuldade entre em contato conosco ou reporte possíveis bugs relacionados a isso acessando Codepass Framework BugTracker. Utilizando MySql nosso framework funciona perfeitamente, estamos testando agora conexão com Postgre e temos tido bons resultados por enquanto, diferente de DB2 onde não obtivemos sucesso em nenhum de nossos testes.

Este método aceita dois parâmetros:
String $driver – Driver PDO de conexão (De acordo com a lista acima)
Array $params – Parametros para conexão (host, username, password, dbname, port)

Você pode setar esses parâmetros na mão, no arquivo index.php, o que não é nem um pouco recomendado por perder a automatização de mudança de ambiente de execução e deixar senha dentro da pasta public o que dispensa comentários não é mesmo!?. Nós recomendamos a seguinte estrutura:

-

$application->setEnvironment('production');

$configs = Codepass_Configs::getInstance();

// Seta as configurações vindas do arquivo INI
$configs->addConfig(array('DB' => '../config/database.ini'));

// Recupera configurações de Database
$db = $configs->getConfigs(
	array('DB', $configs->getEnvironment())
);

$application->setDbConfigs($db['driver'], $db['params']);

-

getDbConfigs

Retorna as configurações setadas para conexão com banco de dados.

startLayout

String. Define o sistema de layout como verdadeiro passando o nome do arquivo de layout padrão. O caminho para este arquivo deve estar setado no arquivo /config/application.ini como a seguir:


[paths]
application.controllers = "../application/controllers/"
application.models = "../application/models/"
application.views = "../application/views/scripts/"
layout.path = "../application/views/layouts/"

setSessionConfigs

Seta as configurações para as sessions do sistema, inclusive as de authenticação, ou seja, o tempo que um login deverá durar no sistema.

-

$application->setSessionConfigs(
	array(
		'session_timelife' => 20,
		'session_save_path' => '../arquivos/sessions/',
		'auth_expire' => 5
	)
);

-

Todos os parâmetros são opicionais.

getSessionConfigs

Retorna as configurações de sessions do sistema.

run

Até aqui o aplicativo ainda não esta efetivamente rodando. Se não for dado um “run” no aplicativo nada acontecerá. Então, assim que terminar de setar todas as configurações é necessário rodar este método.

autoload

Este na verdade é um método privado da classe Codepass_Loader, mas de repente o desenvolvedor pode querer carregar algum arquivo próprio, por isso o deixamos público. Basta passar como parâmetro o nome da classe que será incluída no sistema. Todos os arquivos são incluídos através deste método, ou seja, para incluir um arquivo que não faz parte da biblioteca Codepass, então é necessário que você siga o padrão para inclusão de classes deste método.

A classe deve ter o nome de todas as pastas hierarquicamente separados por _ (underline) e com as primeiras letras sempre maiúsculas, por exemplo, para incluir o arquivo “library/self/teste/Abstract.php” você deve nomear a classe da seguinte forma Self_Teste_Abstract. Isto é um padrão do sistema e o framework também segue esta regra.

Deixe uma resposta

WP-Highlight