Laravel 5: Entenda o ambiente e a estrutura MVC

25
Laravel 5: Entendendo o ambiente MVC

Transcript of Laravel 5: Entenda o ambiente e a estrutura MVC

Page 1: Laravel 5: Entenda o ambiente e a estrutura MVC

Laravel 5: Entendendo o ambiente MVC

Page 2: Laravel 5: Entenda o ambiente e a estrutura MVC

Quem sou eu ?

➢ Apenas um Analista desenvolvedor PHP➢ Trabalho no: Pravaler

Page 3: Laravel 5: Entenda o ambiente e a estrutura MVC

O Laravel PagSeguro

https://github.com/michaeldouglas/laravel-pagseguro

Page 4: Laravel 5: Entenda o ambiente e a estrutura MVC

Por que o Laravel ?

Page 5: Laravel 5: Entenda o ambiente e a estrutura MVC

Instalação Laravel 5• Existem duas formas de instalar o Laravel, que

são:➢Laravel Installer - composer global require

"laravel/installer=~1.1“ -> Por que dessa forma ?➢ Por que é possível utilizar o comando: laravel new projeto➢ Exemplo de comando de referencia a pasta laravel installer: export

PATH="~/.composer/vendor/bin:$PATH"

➢Instalação direta via composer - composer create-project laravel/laravel --prefer-dist -> Por que dessa forma ?➢ Por não querer usar o comando laravel new ?

Page 6: Laravel 5: Entenda o ambiente e a estrutura MVC

Seu APP no Laravel

➢ Saiba mais sobre o comando: laravel new➢ Para testar nossa nova aplicação basta

executar o comando:○ php artisan serve

Page 7: Laravel 5: Entenda o ambiente e a estrutura MVC

A nova estrutura do Laravel➢ Vendor

➢ Essa pasta é gerada automaticamente pelo composer, é nela que encontramos as bibliotecas que farão com que o Laravel rode. -> Atenção: Se possível for não edite os códigos dessa pasta ☺

➢ Public➢ A pasta public é o seu DocumentRoot, ou seja, toda requisição efetuada pelo usuário cairão nela. ➢ Ela também é responsável por servir nossos assets, ou seja, javascripts, css, fonts, imagens e etc.

➢ Config➢ A pasta config é responsável por guardar os arquivos de configuração da sua aplicação.

➢ Storage➢ A pasta Storate é responsável por armazenar os arquivos de uso interno do Laravel tais como:

➢ Cache, logs e etc -> Lembrando que cache, por exemplo, depende de como está o seu config.

➢ App➢ É a pasta principal do sistema basicamente é responsável por armazenar grande parte do código que digitarmos.

Page 8: Laravel 5: Entenda o ambiente e a estrutura MVC

Configurando meu NameSpace

➢No laravel 5 por default o Namespace padrão é o App.

➢Por que não é legal manter o APP ?➢Para alterar esse padrão e colocar o

Namespace de sua empresa, você deverá executar o comando:➢php artisan app:name SeuNameSpace

Page 9: Laravel 5: Entenda o ambiente e a estrutura MVC

Configurando meu Environment ➢ Primeiramente o que é o Environment ?➢ Laravel utiliza o: phpdotenv do vlucas!➢ E para verificar nosso ENV utilize o comando:

➢php artisan env➢ Exemplo de um arquivo (.env) de configuração:

Page 10: Laravel 5: Entenda o ambiente e a estrutura MVC

Rotas no Laravel➢ Onde fica o routes ?

○ O caminho para o routes no Laravel 5 mudou para:■ app/Http/routes.php

➢ Tipos de rotas Laravel○ GET, POST, PUT E DELETE

➢ E como eu forneço um parâmetro em minha rota ?○ Basta que em sua rota você informe o parâmetro, por exemplo:

rota/{parametro}○ E para opcionais: rota/{parametro?}○ É possível utilizar rota?parametro=valor !

➢ Agrupamento de rotas, será que vale a pena ?○ Nem deveria ter esse questionamento !○ Como eu faço então ?

■ O que precisa é usar o group da rota e especificar o nome do seu grupo: Route::group[‘as’ => ‘legal’]

➢ Apenas um lembrete funciona para: middleware e namespaces

Page 11: Laravel 5: Entenda o ambiente e a estrutura MVC

Verificando comandos disponíveis do artisan

➢ O que é o Artisan ? ➢Artisan é a nomenclatura para a linha de comando

que é incluída no Laravel.➢ Para verificar os comandos disponíveis basta executar:

➢php artisan ou php artisan list

Page 12: Laravel 5: Entenda o ambiente e a estrutura MVC

Configurando meu banco de dados

➢ Com seu Environment configurado a base já esta correta, sendo possível executar o comando:➢ php artisan migrate:install

➢ Criando sua primeira model:➢php artisan make:model (seu model)

➢ E para criar a tabela:➢php artisan migrate

Page 13: Laravel 5: Entenda o ambiente e a estrutura MVC

O que são Migrations➢ O recurso migrations do Laravel serve para, gerenciar

as mudanças que ocorrem na estrutura do nosso banco de dados, ou seja, irá gerenciar nossas tabelas, colunas e índices.

➢ Qual a vantagem ? - Ser um DBA ?○ Nós podemos ter exatamente a versão da estrutura

de base, logo, se for necessário podemos realizar um “roll back“ da nossa estrutura.

○ Para executar um “roll back” basta executar o comando: ■ php artisan migrate:rollback

Page 14: Laravel 5: Entenda o ambiente e a estrutura MVC

Conheça o Tinker

➢ Primeiramente o que é o tinker ?○ Apenas um console interativo que vem com o

Laravel para ajudar, por exemplo, a testar sua nova model !

➢ Como chamo o tinker ?○ Basta você executar no seu terminal o comando:

■ php artisan tinker➢ Exemplo de execução do Tinker:

Page 15: Laravel 5: Entenda o ambiente e a estrutura MVC

Exemplo de execução1. php artisan tinker2. Psy Shell v0.4.4 (PHP 5.6.4 — cli) by Justin Hileman3. >>> use SeuAPPConfigurado\Palestra;4. => false5. >>> $palestra = new Palestra();6. => <App\Palestra #00000q0001er5f71000000023a0f17v9> {}7. >>> $palestra->nome = "Laravel 5: Entenda o ambiente e a estrutura

MVC";8. => "Laravel 5: Entenda o ambiente e a estrutura MVC"9. $palestra->descricao = "Laravel é legal mesmo!";10.=> "Laravel é legal mesmo!"11.>>> $palestra->save();12.=> true

Page 16: Laravel 5: Entenda o ambiente e a estrutura MVC

Controllers no Laravel

➢ Em nossa aplicação possui a responsabilidade de ser o interpretador, ou seja, recebe nossa requisição e fica responsável por chamar: Nossas Models, consultar e persistir dados e também por oferecer nossas respostas.○ Vamos focar em receber uma requisição e encaminhar para

nossa controller e responder de três formas diferentes, que são:■ HTML■ Json■ E chamando nossa view

Page 17: Laravel 5: Entenda o ambiente e a estrutura MVC

Comando para criação do seu Controller

➢ Como vimos anteriormente ao executar o comando:○ php artisan ou php artisan list - É retornado a lista de

comandos, existe um quem nós chama a atenção para o nosso caso atual que é o comando make:controller:■ php artisan make:controller SeuNomeDeController

➢ Ao executar esse comando ele irá criar o seu controller porém será criada seguindo o padrão Restful.

➢ Existe uma forma de contornar isso, basta que ao criar seu Controller você coloque após o nome da Controller: --plain○ php artisan make:controller SeuNomeDeController --

plain

Page 18: Laravel 5: Entenda o ambiente e a estrutura MVC

Como fica as ações de uma Controller Restful

Page 19: Laravel 5: Entenda o ambiente e a estrutura MVC

Retornando um HTML➢ Primeiramente seus controllers estão no caminho:

○ app/Http/Controllers➢ Exemplo de controller retornando o HTML:

○ Controller criada usando: --plain !

Page 20: Laravel 5: Entenda o ambiente e a estrutura MVC

Retornando um JSON➢ Não precisa de muita mágica / método para retornar o Json, por

que o Laravel sabe que ao retornarmos um objeto ou um array, em nossa ação, ele irá retornar o Json que você precisa:

Page 21: Laravel 5: Entenda o ambiente e a estrutura MVC

Sobre as Views Laravel

➢ Antes de mais nada onde estão as Views ?○ No Laravel 5 nossas views ficam no caminho:

■ resources \ ou recursos - resources/views➢ A template engine que o Laravel utiliza é a blade, por isso em

alguns arquivos existe: ○ .blade.php

➢ Posso utilizar outro template engine ? - Sim !➢ Sou obrigado a utilizar .blade ? - Não, porém você perde os

facilitadores do Laravel para inserção de códigos PHP.

Page 22: Laravel 5: Entenda o ambiente e a estrutura MVC

Retornando para a VIEW➢ Sem muita mágica o retorno para a View é bem simples:

Page 23: Laravel 5: Entenda o ambiente e a estrutura MVC

Como renderizar os dados ?➢ Para exibirmos os dados criados nos controllers iremos criar

nossas Views no caminho:○ resources/views/palestra.blade.php

➢ Exemplo sem o blade:

Page 24: Laravel 5: Entenda o ambiente e a estrutura MVC

Como renderizar os dados ?

➢ Exemplo com o blade:

Page 25: Laravel 5: Entenda o ambiente e a estrutura MVC

Contatos MDBA➢ Linkedin - https://br.linkedin.com/in/michaeldouglasbarbosa➢ Facebook: https://www.facebook.com/mdbaweb➢ Twitter: https://twitter.com/mdba_php➢ Github: https://github.com/michaeldouglas➢ E-mail: [email protected]

Obrigado Galera !