Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Palestra

807 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Palestra

  1. 1. Criador e Palestrante: Ítalo Lelis de Vietro
  2. 2. Um pouco sobre mimMeu nome é Ítalo Lelis de Vietro sou de Curitiba eatualmente moro em João Pessoa, estou cursando Análisee Desenvolvimento de Sistemas na Faculdade iDEZ.Linguagens: VB 6, VB.NET, C#, F#, PHP, Javascript.Marcações: HTML5, CSS3.Frameworks: jQuery, CakePHP, Yii Framework, Symfony,Easy Framework.
  3. 3. O que vamos abordar EasyFramework Características • Controllers o Components• O que é o • Models EasyFramework. o Datasources • Views o Elements• Por que utilizar. o Helpers • Segurança • Cache• Requisitos. • Coleções • Internacionalização e Localização • Aplicações RestFul
  4. 4. O que é o Easy FrameworkO Easy Framework é um framework dedesenvolvimento ágil e eficiente para aplicaçõesescritas em PHP, seguindo os padrões mais adotadospelo mercado atual como o MVC e o ORM, vocêconstroi aplicações robustas, seguras e poderosas empouco tempo de desenvolvimento.Baseado em bons frameworks como o Spaguetti* e oCakePHP.
  5. 5. Por que utilizar?• Extremamente fácil configurar (arquivos YAML).• Integração com qualquer banco de dados*.• Adota as boas práticas de programação e padrões de projetos.• MVC (Model View Controllrer)• Object Relational Mapping (ORM)• Código Orientado a Objetos.• Possui a camada de abstração das views (Smarty).• Possui uma licença flexível (MIT License).
  6. 6. RequisitosO EasyFramework foi criado para rodar nos servidoresweb mais populares do mercado. Mas apesar dessaflexibilidade deve seguir algumas obrigações:• Servidor Apache 2.0 ou mais recente;• Rewrite Module habilitado• Permissão de uso para .htaccess (AllowOverride Options FileInfo)• PHP 5.2.4
  7. 7. O Padrão MVC no EasyFWCiclo de Vida Controller Components View Model DB Helpers Datasource DB
  8. 8. ControllersOs controllers recebem as requisições do usuário erepassam para o modelo que vai tratar, validar eretornar os dados necessários para que o controllerrenderize uma view para o usuário com asinformações. No EasyFw nós declaramos umcontroller dessa forma:class LivrosController extends AppController{}
  9. 9. ComponentesOs componentes adicionam funcionalidade aocontroller, isso permite isolarmos tarefas repetitivas ereutilizarmos em diversos controllers.Exemplos de Componentes: o AuthComponent – Realiza a autenticação nas aplicações. o SessionComponent – Controla e manipula Sessões; o EmailComponent – Gerencia o envio de e-mail; o UploadComponent – Controla o upload de arquivos; o FacebookComponent – Gerencia todo o acesso a API do Facebook;Existem diversos outros componentes que podemos acoplar aosnossos controllers. Outra vantagem é que podemos criar nossospróprios componentes e anexarmos na nossa aplicação.
  10. 10. ModelsOs models se comportam como a camada de negócio do seuprojeto, ou seja, eles se responsabilizam por gerenciar quasetodos os dados da aplicação, inserindo, recuperando evalidando dados.Um model representa o seu modelo de dados.Aqui podemos ver um simples exemplo de uma definição deModelo: class Livro extends AppModel{ public $name = „Livro‟; }
  11. 11. ModelsApós uma simples definição do seu modelo de dados, ele jáadquire funções para trabalharmos com recuperação, inserçãoe validação de dados. Podemos citar algumas funcionalidades:$options = array( “fields” => array(“id”, “titulo”, “ano”), “conditions” => array(“ano”=> 2012); “order” => 2 “limit” => 10));$this->Livro->find(Model::FIND_ALL, $options);
  12. 12. ModelsApós uma simples definição do seu modelo de dados, ele jáadquire funções para trabalharmos com recuperação, inserção evalidação de dados. Podemos citar algumas funcionalidades: public $validate= array( “titulo” => ”required”, “ano” => “numeric”; “email” => “email”, “sigla” => array(“rule”=> array( “funcaoPersonalizada”, $params ) ) );
  13. 13. ViewsUma view é onde serão mostrados os resultados deoperações da sua aplicação:View/Layouts/Layout.tpl View/Pages/ Livros/index.tpl<html> {extends file=„Layout.tpl‟} <head> </head> {block name=conteudo} <body> <h1>{$var}</h1> {block name=conteudo}{/block} {/block} </body></html>
  14. 14. Hierarquia das Views Layouts ElementsView View View Elements Elements Elements
  15. 15. View EnginesNo EasyFw você pode facilmente implementar novas Engines devisualização. Por padrão nós usamos o Smarty, mas nada impedeque você use o próprio PHP ou crie sua engine, implementando ainterface ITempalteEngine.Para usar outra engine basta mudar a configuração no arquivoapp/Config/application.yml.View: engine: smartyView: engine: phpView: engine: twig
  16. 16. SegurançaAplicações web exigem uma grande preocupação comsegurança, garantindo a integridade dos dados. O EasyFwtraz uma API da segurança pronta para sua aplicação.• Filtragens de dados com Sanitize.• Scape de dados para as Views.• Geração e validação de Tokens.• Criptografia padrão ou com cifra (128, 256 bits).• Segurança das Sessões.• Suporte a oAuth nativo.• Proteção contra SQL Injection.• Proteção contra CSRF (Cross Site Request Forgery).
  17. 17. CacheTrabalhar com cache é uma grande “sacada” das aplicações web de altaescala. Para esses casos o EasyFw tem uma engine de Cache poderosa. Elafoi baseada na engine do CakePHP.Como funciona o cache na aplicação?Para trabalharmos com cache precisamos configura-lo no arquivo:app/Config/cache.ymldefault: engine: File //Engine que usaremos no cache duration: 250 //Tempo de duração do cache probability: 100 // path: <?php echo CACHE . "n";?>//Caminho onde o cache será escrito prefix: easy_easy_„ //O prefixo para o cache que será escrito lock: false //Devemos bloquear o arquivo para escrita? serialize: true //Devemos serializar o cache no arquivo?
  18. 18. Usando o CachePodemos utilizar o cache me nossa aplicação para armazenar dados muitoacessados, ou consultas pesadas que demoram para retornar resultados.class Post extends AppModel { public function newest() { $result = Cache::read(newest_posts); if ( ! $result ) { $result = $this->find(all, array( order => Post.updated DESC, limit => 10 )); Cache::write(newest_posts, $result); } return $result; }}
  19. 19. ColeçõesDiferente de alguns frameworks, o Easy Frameworktrabalha fortemente com coleções, a grandediferença é que o EasyFw tem um grande suporte acoleções muito parecido com a plataforma .NET.As coleções e Interfaces: ICollection Collection ObjectCollection List Hashtable ISortable IList
  20. 20. Criando sua ColeçãoPara criar sua coleção é muito simples, podemos somenteextender a classe Collection, e fazer nossasimplementações.class LivroCollection extends Collection{}Somente com isso já temos nossa coleção de livros prontacom vários métodos que podem nos ajudar.$livros = new LivroCollection();$livros->add(new Livro(„nome‟, „ano‟));
  21. 21. Internacionalização e LocalizaçãoAplicações multi-idiomas é uma realidade entre osdesenvolvedores hoje, mas muitos tem dificuldades emimplementa-las. O EasyFw tenta amenizar esse trabalho.Para internacionalizarmos uma string, basta chamarmosuma função muito parecida com o gettext() do PHP.Em qualquer lugar da aplicação:$string = __(„String Internacionalizável‟);Nas Views:{__(„String Internacionalizável‟)}Pronto, com isso já aplicamos o suporte ainternacionalização na nossa aplicação.
  22. 22. Internacionalização e LocalizaçãoMas agora que tenho todas as minhas strings internacionalizáveis,como faço para traduzi-las?Podemos utilizar o Programa PoEdit, o que ele faz é escanear seucódigo PHP e onde ele encontrar essa função __() ele irá gerar umarquivo .po para você criar sua tradução. Basta você colocar essearquivo dentro da estrutura do EasyFw e pronto, vejamos umexemplo:App/Locale/ o pt_br • LC_MESSAGES o default.po o default.mo o en_us • LC_MESSAGES o default.po o default.mo
  23. 23. Internacionalização e LocalizaçãoAgora que já temos tudo traduzido, podemos configurarqual a linguagem que vamos utilizar.• Podemos deixar nossa aplicação pegar a Preferencia do usuário.• Podemos setar no arquivo de configuração a língua padrão. App: encoding: utf-8 language: pt_BR timezone: America/Sao_Paulo• Podemos setar na sessão uma língua a ser utilizada. Session::write(„App.language‟, „pt_BR‟);
  24. 24. Aplicações RESTfulCriar uma API pode ser algo muito trabalhoso, então por quenão facilitarmos esse trabalho? No EasyFw podemos configurarRotas, definir métodos de acesso, retornar XML, JSON, e o quefor necessário para construirmos nossa API.Para definirmos rotas podemos acessar o nosso arquivo deconfiguração app/Config/routes.ymlRoutes: connect: /livros/categoria: {controller: „Livros, action: „findByCategoria} /livros/:fragment: {controller: „Livros, action: „findByName„, params: $1}
  25. 25. Aplicações RESTfulPodemos definir quais métodos HTTP serão aceitos por determinadosrecursos da aplicação:/** * @REST(“POST”)**/public function adicionarLivro(){ $livros = $this->Livros->find(Model::All); if($this->request->accepts(„json‟)){ return json_enconde($livros); }elseif ( $this->request->accepts(„xml‟)){ return XML::parse($livros); }}Isso nos permite criar recursos apenas acessíveis para determinadas requisições.
  26. 26. Como Baixar?Para podermos baixar o core com os demos do EasyFramework basta acessarmos o website: www.easyframework.netSe você quiser contribuir para o desenvolvimento doframework, basta fazer um clone de nosso repositórioGIT: o $ git clone git://github.com/LellysInformatica/EasyFramework.git
  27. 27. CréditosSmarty Template Engine - http://www.smarty.netSpaghetti * Framewok – http://spaghettiphp.com.brCakePHP Framework - http://cakephp.orgCamisetas: Flávio Cordeiro
  28. 28. Obrigado$contato = array( “e-mail” => italolelis@lellysinformatica.com “Lellys Informática” => www.lellysinformatica.com “EasyFw” => www.easyframework.net );

×