Criando Frameworks Inteligentes com PHP Uma abordagem prática: vantagens, aplicações e procedimentos.
Apresentação Equipes ao redor do mundo utilizam diferentes padrões de projeto, de acordo com suas necessidades e limitações. Frameworks são conjuntos de funções e procedimentos que auxiliam no desenvolvimento de aplicações, evitando repetição de operações comuns e tediantes, e auxiliando na arquitetura do software.
Análise Inicial O framework se preocupa com o seu projeto? Se adequam à sua realidade? Talvez você já tenha um framework e não saiba! Tempo é dinheiro. Organize suas idéias! Chega de novas APIs, seu método de trabalho vale mais! Não existe bala de prata, siga suas necessidades.
Prós e Contras Escalabilidade Testes Manutenção Custo Eficiência Segurança Performance Limitações Código Público Orientação ao Projeto Suporte Documentção Colaboração Arquitetura Código Extra Aprendizado Atualizações Trabalho em Equipe Particular Open Source Confiança no Projeto Tempo de Desenvolvimento
Como Funciona Estrutura Modelo MVC Active Record Configurações e Rotas Webroot Aplicação Classes Públicas Models Views Controllers Métodos Comuns DAO Util Forms e Inflector
Estrutura
MVC Estrutura
Active Record Estrutura
Configurações e Rotas Estrutura 1..htaccess Arquivo de configuração do servidor que define, entre outras coisas, as regras de endereçamento de URL. 2. config.php Arquivo de configuração principal que define variáveis globais, inclui arquivos de sistema e define configurações globais do ambiente. 3. routes.php define regras de organização de URL, customizando os endereços do sistema.
Webroot Estrutura Armazena folhas de estilo, imagens, scripts e anexos necessários ao sistema.
Classes Públicas As classes públicas fazem parte dos modelos de core do framework. São responsáveis por: Mapeamento de objeto relacional Conexão com a base de dados Métodos comuns Acesso à base de dados Criação de formulários
Common Methods Classes Públicas Contém as funções comuns às classes de core, como construtor, getter e setter genéricos. Todas as classes que definem objetos devem extender os métodos comuns.
Data Access Objects Classes Públicas São responsáveis pelas classes de acesso ao banco de dados, e pelas operações comuns a objetos do sistema (CRUD). É nessa classe que há o debug de strings SQL e o retorno dos testes.
Database Utilities Classes Públicas É a parte mais baixo nível do framework. Essa classe é responsável por criar e executar as strings SQL dentro do banco de dados.
Form Utilities Classes Públicas Cria formulários padronizados direto nas views. Essa classe padroniza o envio e leitura de dados entre módulos do sistema, automatizando verificação, debug e instância de objetos.
Inflector Classes Públicas Pluraliza/singulariza nomes de objetos para sincronismo do active record e automação do framework com o banco de dados.
A camada de aplicação contém os models, controllers e views particulares ao projeto. Aplicação
Models Aplicação São os modelos particulares da aplicação e variam de acordo com as entidades do sistema.
Contollers Aplicação Responsáveis pelas regras de negócio particulares de cada entidade.
Views Aplicação Compõem a interface de usuário da aplicação. São renderizadas pelo arquivo de rotas.
Organização É de escolha do desenvolvedor o seu modelo organizacional. O meu framework em particular tem influências do rails e cakephp. É importante que a arquitetura seja clara para a equipe que irá usá- la e para futuros membros. Não esqueça que uma parte importante da filosofia de ter um framework próprio consiste em simplificar o aprendizado, e não criar uma
Perguntas Fiquem à vontade para fazer perguntas.
Considerações Finais