Loader
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.