Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Laravel From Scratch - Baseado no LaraCasts

Laravel From Scratch - Baseado no LaraCasts

Primeiros passos com Laravel, baseado no tutorial Baseado no "Laravel 5.1 From Scratch" feito por LaraCasts (https://laracasts.com/series/laravel-from-scratch-2018/)

Ícaro Jerry

May 31, 2019
Tweet

More Decks by Ícaro Jerry

Other Decks in Programming

Transcript

  1. Contexto Histórico ✘ Commit inicial a cerca de 8 anos

    atrás (jun de 2011) ✘ Seu criador é o Taylor B. Otwell (github/taylorotwell) ✘ Versão atual (stable) é a 5.8.19 ✘ 118.515 LoC ✘ Atualmente é o framework PHP mais popular
  2. Atividades ✘ nos últimos 12 meses ◦ 531 desenvolvedores envolvidos

    ◦ 3.564 commits ✘ desde o primeiro commit: ◦ 2.692 desenvolvedores envolvidos ◦ 30.657 commits O nível de atividade do projeto é considerada como Muito Alta Fonte: https://www.openhub.net/p/_compare?project_0=Laravel&project_1=Django&project_2=Ruby+on+Rails
  3. Características ✘ Arquitetura MVC ✘ Open-source (github/laravel) ✘ Licença MIT

    ✘ Comunidade ativa ✘ Possui uma documentação extensa e completa O Laravel é um framework de aplicação web com sintaxe expressiva e elegante
  4. Principais Destaques ✘ Composer ✘ Eloquent ORM/QueryBuilder ✘ Sistemas de

    Rotas ✘  Sistema de templates (Blade) ✘ Entre outros
  5. O que é? é um gerenciador de dependências. Uma ferramenta

    que permite gerenciar, de forma fácil, os pacotes de terceiros da sua aplicação O Composer é o gerenciador de dependências do Laravel, algo que praticamente toda aplicação PHP moderna faz
  6. O que é? é um ORM que aplica o padrão

    Active Record, no qual cada tabela de banco de dados é representada no código através de um Model que é usado para interagir com essa tabela O Eloquent é o ORM padrão do Laravel Eloquent orm
  7. Query Builder Caso o programador não se sinta à vontade

    em utilizar o Eloquent, ainda há opção de utilizar o Query Builder
  8. O que é? um compilador de templates do Laravel (template

    engine) tem como principal objetivo reduzir a quantidade de código PHP inserido no meio do HTML e aumentar o reúso - destaque-se outros templates devido sua flexibilidade - não restringe o uso de PHP puro misturado a sintaxe do template Blade
  9. Sistema de templates - Blade   Exemplo de uma página que

    utiliza o template mostrado no slide anterior
  10. Sistema de templates - Blade   Exemplo de uma página que

    utiliza o template mostrado no slide anterior
  11. O que é? em resumo, as rotas fazem o mapeamento

    da URL digitada no navegador para alguma ação da aplicação - Com o Laravel, podemos trabalhar facilmente com o conceito de rotas - Podemos registrar rotas que respondem a qualquer verbo HTTP - Além de poder realizar agrupamentos por prefixo, subdomínio, namespace ou middleware Sistemas de Rotas
  12. Instalação ✘ PHP >= 7.1.3 ✘ Servidor (apache, nginx, ...)

    ✘ Banco de dados (Mysql, Postgresql, sqlite...) ✘ Composer ✘ Algumas extensões PHP* Mais detalhes em: https://laravel.com/docs/5.8/installation
  13. Estrutura de pastas Estrutura de pastas de um projeto default

    e seus principais arquivos Mais detalhes em: https://laravel.com/docs/5.8/structure#the-root-app-directory
  14. Auth $ php artisan make:auth $ php artisan migrate $

    php artisan route:list $ php artisian serve Mais detalhes em: https://laravel.com/docs/5.8/authentication
  15. Artisian Console - Tinker $ php artisian tinker $ >>

    User::all() $ >> Project::all() $ >> Project::all()->first() Mais detalhes em: https://laravel.com/docs/5.8/artisan#tinker
  16. Laravel Telescope ✘ assistente de debug para o framework Laravel

    ✘ fornece informações sobre as solicitações que chegam à aplicação, exceções, entradas de log, consultas de banco de dados, email, notificações, tarefas agendadas... Mais detalhes em: https://laravel.com/docs/5.8/telescope
  17. Criando um Model $ php artisan make:model Project --migration $

    php artisan make:migration create_projects_table $ php artisan migrate
  18. CSRF protection ✘ Laravel implementa de forma simples uma proteção

    contra ataques Cross-site request forgery (CSRF) ✘ Basta utilizar a diretiva CSRF em seu formulário ◦ @csrf ◦ {{ csrf_field() }} Mais detalhes em: https://laravel.com/docs/5.8/csrf
  19. Form Method Spoofing ✘ Formulários HTML só permitem ação POST

    ✘ Então caso precise utilizar outros verbos HTTP, basta utilizar a diretiva @method ◦ {{method_field('DELETE')}} ◦ @method(‘PATCH') ◦ @method('PUT') Mais detalhes em: https://laravel.com/docs/5.8/routing#form-method-spoofing
  20. Criando um Event & Listener $ php artisian make:event ProjectCreated

    $ php artisian make:listener SendProjectCreatedNotification --event=ProjectCreated
  21. Event ✘ Eloquent Event ◦ retrieved, creating, created, updating, updated,

    saving, saved, deleting, deleted, restoring, restored Mais detalhes em: https://laravel.com/docs/5.8/eloquent#events
  22. Event ✘ Event Class ◦ Cria eventos particulares. Ex: Uma

    tarefa está perto de vencer, ou passou do prazo ◦ event(new TaskCompleted($task)); Mais detalhes em: https://laravel.com/docs/5.8/eloquent#events
  23. Listener ✘ Implementação de um Listener ✘ Registrar um listener

    ◦ EventServiceProvider Mais detalhes em: https://laravel.com/docs/5.8/events
  24. Listener ✘ Implementação de um Listener ✘ Registrar um listener

    ◦ EventServiceProvider Mais detalhes em: https://laravel.com/docs/5.8/events