Versão 2.0.4
Autor: Renan Abreu | Publicado: 2009-09-23T11:45:00-07:00

A versão 2.0.4 está disponível para download no seguinte link : http://code.google.com/p/sifraphp/downloads/list . Esta versão conta com muitas novidades :

Agora trabalha com URL amigáveis&nbsp; -&nbsp; é preciso o mod_rewrite 

Utiliza o PDO na camada Model
Provê uma interface para helpers ( util para uso nas views ) 
Implementa uma interface de configuração, dessa forma é possivel realizar as configurações dos aplicativos através de arquivos .ini 
Disponibiliza uma interface de configuração - para criar classes de configuração personalizadas 
Disponibiliza uma interface para scripts (usado para a geração de componentes de interface) 
Conta com um sistema de autenticação 
Controle de exceções com geração de logs 
Provê suporte ao desenvolvimento baseado em componentes 

Uma das novidades é que agora é possível configurar a aplicação através de arquivos INI. Abaixo segue uma tabela explicativa dos parâmetros aceitáveis.

 <!--
  @page { margin: 2cm }
  TD P { margin-bottom: 0cm }
  P { margin-bottom: 0.21cm }
 -->
 
  


    
   conf_database
   Sessão    de configuração de banco de dados
  
   rdbms
   Servidor    de banco de dados. Este podem ser : mysql,    sqlite, firebird. Mssql, sybase, pgsql, dblib
  
   host
   Localização    do servidor de banco de dados, ou pasta onde estará localizado o    arquivo de dados (sqlite)
  
   Port
   Porta    do servidor de banco de dados. Não é necessário para rdbms    sqlite
  
   User
   Usuário    do servidor.  Não é necessário para rdbms sqlite
  
   Pass
   Senha    de usuário.  Não é necessário para rdbms sqlite
  
   Database
   Base    de dados que será utilizado na aplicação.  No caso de rdbms    sqlite é necessário informar o nome do arquivo
  
   conf_path
   Sessão    de configuração de localizações
  
   base_application
   URI    da aplicação
  
   js_path
   Nome    das pastas de javascripts. O nome definido será subpasta de View
  
   css_path
   Nome    das pastas de folhas de estilo. O nome definido será subpastas de    View
  
   img_path
   Nome    das pastas de imagens. O nome definido será subpasta de View
  
   module_path
   Nome    da pasta de repositório de módulos
  
   component_path
   Localização    da pasta raiz dos componentes
  
   helper_path
   Localização    da pasta raiz dos helpers
  
   conf_router
   Sessão    de configuração do roteador
  
   default_module
   Nome    do modulo inicial da aplicação
  
   default_controller
   Nome    do controlador padrão
  
   default_action
   Nome    da ação padrão     
  
   template_name
   Extensão    dos arquivos de template
  
   log_in_file
   Se    1 as exceções serão lançadas em arquivos de log
  
   log_path
   Localização    da pasta de logs
  


A  conf_authetication, sessão de autenticação segue a sintaxe abaixo:
Para melhor visualização a tabela segue algumas diretivas :
Nome do usuário será representado por nuser.
Nome do módulo será representado por nmod
Nome do controlador será representado por nctr
Nome da ação será representado por nact


    
   *.nuser    = allow
   NomeDoModulo    acessível a todos os usuários
  
   Nuser.nmod    = allow
   Nuser     tem acesso completo ao modulo nmod
  
   Nuser.nmod.nctr    = allow
   Nuser    tem acessa completo ao controlador nctr
  
   Nuser.nmod.nctr.nact = allow

   Nuser    acessa apenas a acao nact pertencente ao controlador nctr do    modulo nmod
  



Após a configuração inicial devemos ler as configuração acima. Utilizamos as classes de configuração provida pelo SifraPHP para tal tarefa. Existem 5 classes de configuração, são elas :

Nucleo_Configuration_Authentication → lê a sessão conf_authentication
Nucleo_Configuration_Database → lê a sessão conf_database
Nucleo_Configuration_Path → lê a sessão conf_path
Nucleo_Configuration_Router → lê a sessão conf_router
Nucleo_Configuration_Configuration → lê todas as sessões


As classes de configuração acima implementam uma interface chamada Nucleo_Configuration. Esta interface descreve um único método chamado setConfiguration que recebe como parâmetro uma string com o nome do arquivo de configuração.
Todas essas sessões podem estar localizada no mesmo arquivo de configuração ou em arquivos distintos.

Além disso foi removido os módulos de UI, estes serão a partir de agora, distribuídos como componentes. Em breve estarei disponibilizando alguns componentes como exemplo.
Outra novidade refere-se a camada View que pode contar com helpers, estes helpers devem implementar a interface Nucleo_Helper, com o método publico execute($params). Os helpers ajudam com tarefas comuns e bem específicos para a camada view.


Em breve estarei postando como utilizar alguns recursos !

Obrigado e até a próxima !