SlideShare uma empresa Scribd logo
Thyago Maia Tavares de Farias
 Possui várias definições:
 “Um conjunto de classe que encapsula uma abstração de projeto para a solução
de uma família de problemas relacionados”;
 “Um conjunto de objetos que colaboram para realizar um conjunto de
responsabilidades para um domínio de subsistema de aplicativos”;
 “Define um conjunto de classes abstratas e a forma como os objetos dessas
classes colaboram”;
 “Um conjunto extensível de classes orientadas a objetos que são integradas para
executar conjuntos bem definidos de comportamento computacional”;
 “Uma coleção abstraída de classes, interfaces e padrões dedicados a resolver
uma classe de problemas através de uma arquitetura flexível e extensível”;
Observe que um framework é uma aplicação “quase”
completa, mas com “pedaços” faltando:
 Ao receber um framework, seu trabalho consiste em prover os
“pedaços” que são específicos para sua aplicação;
 Um framework provê funcionalidades genéricas, mas pode atingir
funcionalidades específicas, por configuração, durante a
programação de uma aplicação;
Vantagens:
Maior facilidade para detecção de erros;
Eficiência na resolução de problemas;
Otimização de recursos;
Concentração na abstração de solução de problemas;
Modelados com vários padrões de projeto;
Framework PHP open-source criado por Taylor Otwell;
Objetiva o auxílio no desenvolvimento de aplicações Web
baseados no padrão de projeto arquitetural MVC;
Se tornou recentemente um dos frameworks PHP mais
populares, ao lado do Symfony, Zend, CodeIgniter, entre
outros;
Hospedado no GitHub e licenciado nos termos da licença
MIT;
O modelo MVC:
 O Homestead é o ambiente de desenvolvimento oficial do
Laravel;
 Trabalha com o Vagrant, que provê uma forma elegante para
gerenciamento de máquinas virtuais para ambientes locais de
desenvolvimento;
 Logo, o Homestead é um Vagrant Box (uma máquina virtual)
que provê todas as aplicações e configurações de servidor
necessárias para que o Laravel seja utilizado em um projeto
PHP OO;
Alguns recurso já incluídos no Homestead:
 Ubuntu 16.04
 Git
 PHP 7.2, 7.1, 7.0, 5.6
 Apache
 MySQL
 PostgreSQL
 Composer
 Node
Associado ao Homestead, para facilitar a etapa de
produção, outros softwares se fazem necessários:
 Git Bash (Para a ativação/desligamento do Homestead, além de executar
outros comandos via Terminal, como a criação de classes Laravel);
 Filezilla (Para acessar o projeto Laravel via FTP);
 MySQL Workbench ou outro cliente MySQL (Para gerenciamento do
banco de dados MySQL do Homestead);
 Notepad++ (Para a edição de código-fonte);
É possível configurar um ambiente de desenvolvimento
Laravel a partir do Xampp. Para isso, será necessário a
instalação do Composer;
Login: eqs
Senha EngQua@2015
 Para configuração
do Xampp, siga os
seguintes passos:
 Acesse o arquivo
C:xamppapache
confextrahttpd-
vhosts.conf e
adicione o código ao
lado na última
linha do arquivo:
Acesse o arquivo
C:WindowsSystem32driversetchosts e adicione
o código abaixo na última linha do arquivo:
A partir de um prompt de comando, acesse a pasta
C:xampphtdocs e execute o seguinte comando:
Será criada a pasta laravel na pasta htdocs do xampp,
já com os arquivos de projeto Laravel;
Inicie o PHP e o MySQL
no control panel do
Xampp, clicando nos
botões Start;
Acesse a URL
laravel.dev (a partir do
Firefox) e verifique se a
página de boas vindas
do Laravel será
apresentada!
Seleciona controllers e/ou métodos de controller a partir do
modelo REST:
 Cada mensagem HTTP contém toda a informação necessária para
compreensão de pedidos;
 Utiliza as operações HTTP para a seleção de controllers e recursos
de controller: POST, GET, PUT e DELETE;
 Classifica operações de CRUD para a persistência de dados.
 Ex.: Quando uma requisição HTTP do tipo DELETE é lançada para
um controller, um método de exclusão de dados em banco poderá ser
automaticamente executada;
O modelo MVC:
Utiliza um arquivo php de rotas para checar
a operação HTTP requisitada e
associá-la a um controller e/ou recurso
de controller.
O arquivo app/Http/routes.php
A partir do arquivo routes.php, é possível atribuir uma
operação HTTP a um controller e/ou recurso de controller;
 Ex.: Quando uma requisição HTTP do tipo get for lançada, execute o método da
classe controller PrincipalController que apresenta a página de boas-vindas de
uma dada aplicação web;
 Graças ao arquivo de rotas, não é necessário indicar na URL o recurso a
ser acessado;
 Ex.: Ao invés do link http://localhost/pagina.php, poderíamos configurar uma
rota para que o recurso fique acessível a partir do link http://laravel.dev/pagina
 Assim, cada recurso da aplicação pode ser representado por um verbo;
 Atribuições de operações HTTP são realizadas a partir da classe
Route e de seus métodos estáticos, que representam cada uma das
operações HTTP existentes;
 Sintaxe básica para a definição de rota:
Route::<operação_HTTP>(‘/verbo’, function() {
// O que será feito quando essa rota for acessada
});
 Exemplo: Abra o arquivo routes/web.php e crie a seguinte rota:
Route::get(‘/php-info’, function() {
phpinfo();
});
 Abra o navegador, acesse http://laravel.app/php-info e verifique se a
página de informações sobre o servidor PHP será apresentada;
 Exemplo 2: Abra o arquivo app/Http/routes.php e crie uma nova
rota:
Route::post(‘/contato’, function() {
print_r(Request::all());
});
 Exemplo 2: Crie uma outra rota:
Route::get(‘/formulario’, function() {
return ‘
<form method=“post” action=“/contato”>
Nome: <input type=“text” name=“nome”>
Email: <input type=“text” name=“email”>
Mensagem: <textarea name=“mensagem”></textarea>
<input type=“submit” value=“Enviar”>
</form>’;
});
 Abra o navegador, acesse http://laravel.app/formulario e verifique se
o formulário criado na segunda rota será apresentado. Digite suas
informações de contato e os submeta, afim de verificar se a rota post
será executada;
 Algum problema?
 Abra o navegador, acesse http://laravel.app/formulario e verifique se
o formulário criado na segunda rota será apresentado. Digite suas
informações de contato e os submeta, afim de verificar se a rota post
será executada;
 Algum problema? SIM
 Todo formulário Laravel precisa submeter um Token, chamado CSRF,
para que possa enviar operações HTTP em aplicações Laravel (por
questões de segurança!);
 Como só podemos inserir tais tokens em formulários implementados em
Views (olha o MVC aí de novo!), por enquanto, vamos desligar esse recurso,
comentando a linha de código que implementa esse recurso no arquivo
app/Http/Kernel.php;
 Abra o navegador, acesse http://laravel.app/formulario e verifique se
o formulário criado na segunda rota será apresentado. Digite suas
informações de contato e os submeta, afim de verificar se a rota post
será executada;
 Métodos da classe Route disponíveis para rotas:
 Route::get($uri, $callback); - Utilizado de forma geral para navegar entre
páginas;
 Route::post($uri, $callback); - Utilizado de forma geral para alterações no
lado do servidor;
 Route::put($uri, $callback); - Utilizado de forma geral para atualizações de
um recurso existente;
 Route::patch($uri, $callback); - Utilizado de forma geral para atualizações
de um recurso existente;
 Route::delete($uri, $callback); - Utilizado de forma geral para remover um
recurso existente;
 Também é possível definir vários verbos para uma única rota com o método
match:
Route::match([‘POST’,’GET’], ‘/formulario’, function() {
if(Request::isMethod(‘post’))
return print_r(Request::all(), true);
else {
return ‘
<form method=“post” action=“/formulario”>
Nome: <input type=“text” name=“nome”>
Email: <input type=“text” name=“email”>
Mensagem: <textarea name=“mensagem”></textarea>
<input type=“submit” value=“Enviar”>
</form>’;
}
});
 Também é possível definir todos os verbos para uma única rota com o método
any:
Route::any(‘/formulario’, function() {
if(Request::isMethod(‘post’))
return print_r(Request::all(), true);
else {
return ‘
<form method=“post” action=“/formulario”>
Nome: <input type=“text” name=“nome”>
Email: <input type=“text” name=“email”>
Mensagem: <textarea name=“mensagem”></textarea>
<input type=“submit” value=“Enviar”>
</form>’;
}
});
O arquivo app/Http/routes.php
Até o momento, não passamos nenhum parâmetro nas
nossas requisições (rotas). Mas em muitas aplicações, essa
necessidade pode surgir;
Para isso, a sintaxe na definição do verbo muda um pouco,
onde será necessário explicitar os parâmetros na sua
definição;
 Exemplo: Abra o arquivo routes/web.php e crie a seguinte rota:
Route::get(‘/contato/{id}’, function($id) {
printf(‘Olá, o seu ID é %s’, $id);
});
 Abra o navegador, acesse http://laravel.app/contato/25 e verifique se
o ID 25 é apresentado no navegador. Se nenhum parâmetro for
enviado, será gerada uma exceção;
Já que nossa rota espera um id, vamos alterá-la para
aceitar apenas números (atualmente ela também aceita
strings!);
Para isso, basta invocar o método where após a definição
da rota, passando como parâmetro o nome do parâmetro e
a expressão regular que impõe o uso de números;
 Exemplo: Abra o arquivo routes/web.php e crie a seguinte rota:
Route::get(‘/contato/{id}’, function($id) {
printf(‘Olá, o seu ID é %s’, $id);
})->where(‘id’,’[0-9]+’);
 Abra o navegador, acesse http://laravel.app/contato/sport e verifique
se o ID ‘Sport’ é apresentado no navegador. Se nenhum parâmetro
for enviado, será gerada uma exceção;
 Exemplo: Podemos passar mais de um parâmetro. Abra o arquivo
routes/web.php e edite a seguinte rota:
Route::get(‘/contato/{id}/nome/{nome}’,
function($id,$nome) {
printf(‘Olá %s, o seu ID é %s’, $nome, $id);
});
 Abra o navegador, acesse http://laravel.app/contato/Thyago/25 e verifique a
saída apresentada no navegador. Se nenhum parâmetro for enviado, será
gerada uma exceção;

Mais conteúdo relacionado

Mais procurados

Introdução ao Ruby On Rails
Introdução ao Ruby On RailsIntrodução ao Ruby On Rails
Introdução ao Ruby On Rails
Milton Moura
 
Criando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHPCriando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHP
2km interativa!
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
Pedro Sousa
 
Introducao ao Ruby On Rails
Introducao ao Ruby On RailsIntroducao ao Ruby On Rails
Introducao ao Ruby On Rails
Andre Ferraro
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1
Sliedesharessbarbosa
 
Rails na pratica
Rails na praticaRails na pratica
Rails na pratica
Túlio Ornelas
 
Engenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoEngenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galo
GuilhermePetrosky
 
Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on Rails
CJR, UnB
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direito
Cezinha Anjos
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
Régis Eduardo Weizenmann Gregol
 
Python e Django
Python e DjangoPython e Django
Python e Django
pugpe
 
Django Módulo Básico Parte II
Django Módulo Básico Parte IIDjango Módulo Básico Parte II
Django Módulo Básico Parte II
antonio sérgio nogueira
 
JSPs Introdução Parte 1
JSPs Introdução Parte 1JSPs Introdução Parte 1
JSPs Introdução Parte 1
Elaine Cecília Gatto
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
Glaucio Scheibel
 
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Professor Samuel Ribeiro
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service REST
Mario Sergio
 
Introdução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPIntrodução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSP
Manoel Afonso
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
Mario Sergio
 
Criando uma aplicação simples com ruby on rails
Criando uma aplicação simples com ruby on railsCriando uma aplicação simples com ruby on rails
Criando uma aplicação simples com ruby on rails
COTIC-PROEG (UFPA)
 

Mais procurados (19)

Introdução ao Ruby On Rails
Introdução ao Ruby On RailsIntrodução ao Ruby On Rails
Introdução ao Ruby On Rails
 
Criando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHPCriando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHP
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 
Introducao ao Ruby On Rails
Introducao ao Ruby On RailsIntroducao ao Ruby On Rails
Introducao ao Ruby On Rails
 
JasperReports Tecnicas de geracao_de_relatorios1
JasperReports  Tecnicas de geracao_de_relatorios1JasperReports  Tecnicas de geracao_de_relatorios1
JasperReports Tecnicas de geracao_de_relatorios1
 
Rails na pratica
Rails na praticaRails na pratica
Rails na pratica
 
Engenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoEngenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galo
 
Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on Rails
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direito
 
Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3Introdução Ruby 1.8.7 + Rails 3
Introdução Ruby 1.8.7 + Rails 3
 
Python e Django
Python e DjangoPython e Django
Python e Django
 
Django Módulo Básico Parte II
Django Módulo Básico Parte IIDjango Módulo Básico Parte II
Django Módulo Básico Parte II
 
JSPs Introdução Parte 1
JSPs Introdução Parte 1JSPs Introdução Parte 1
JSPs Introdução Parte 1
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...Introdução à programação para web com Java -  Módulo 03: Conceitos básicos de...
Introdução à programação para web com Java - Módulo 03: Conceitos básicos de...
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service REST
 
Introdução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSPIntrodução ao Desenvolvimento de aplicações WEB com JSP
Introdução ao Desenvolvimento de aplicações WEB com JSP
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
Criando uma aplicação simples com ruby on rails
Criando uma aplicação simples com ruby on railsCriando uma aplicação simples com ruby on rails
Criando uma aplicação simples com ruby on rails
 

Semelhante a Desenvolvimento de sistemas web com php Frameworks - Aula 1

Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
Maurício Linhares
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
Francisco Santos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetos
Fer Nando
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
Elisabete Pantoja
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetos
Fabiano Rodrigues
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
ledsifes
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
fabioginzel
 
Servlet jsp tomcat 8
Servlet jsp tomcat 8Servlet jsp tomcat 8
Servlet jsp tomcat 8
maxrosan
 
Servlets e jsp
Servlets e jspServlets e jsp
Servlets e jsp
Alan Oliveira
 
Cake Php
Cake PhpCake Php
Cake Php
Laura Lopes
 
Phalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações IniciaisPhalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações Iniciais
PauloRobertoBolsanel
 
Php5 Orientado A Objetos
Php5 Orientado A ObjetosPhp5 Orientado A Objetos
Php5 Orientado A Objetos
Rápido Site
 
Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
Fernando Palma
 
Minicurso Aplicação Web Utilizando o Framework Laravel
Minicurso Aplicação Web Utilizando o Framework LaravelMinicurso Aplicação Web Utilizando o Framework Laravel
Minicurso Aplicação Web Utilizando o Framework Laravel
X Simpósio de Informática do IFNMG - Januária
 
Curso de Servlets
Curso de ServletsCurso de Servlets
Curso de Servlets
Marcelo Gonçalves
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
Giovanny Valente
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
BrunoAlbuquerque864673
 
Apostila: Curso de java III
Apostila: Curso de java IIIApostila: Curso de java III
Apostila: Curso de java III
Verônica Veiga
 
Apontamentos psi m18
Apontamentos psi m18Apontamentos psi m18
Apontamentos psi m18
tomascarol2
 
Transformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para jsonTransformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para json
Jeison Barros
 

Semelhante a Desenvolvimento de sistemas web com php Frameworks - Aula 1 (20)

Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
php orientado_a_objetos
php orientado_a_objetosphp orientado_a_objetos
php orientado_a_objetos
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetos
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
 
Servlet jsp tomcat 8
Servlet jsp tomcat 8Servlet jsp tomcat 8
Servlet jsp tomcat 8
 
Servlets e jsp
Servlets e jspServlets e jsp
Servlets e jsp
 
Cake Php
Cake PhpCake Php
Cake Php
 
Phalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações IniciaisPhalcon FrameWork - Considerações Iniciais
Phalcon FrameWork - Considerações Iniciais
 
Php5 Orientado A Objetos
Php5 Orientado A ObjetosPhp5 Orientado A Objetos
Php5 Orientado A Objetos
 
Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
 
Minicurso Aplicação Web Utilizando o Framework Laravel
Minicurso Aplicação Web Utilizando o Framework LaravelMinicurso Aplicação Web Utilizando o Framework Laravel
Minicurso Aplicação Web Utilizando o Framework Laravel
 
Curso de Servlets
Curso de ServletsCurso de Servlets
Curso de Servlets
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
 
Apostila: Curso de java III
Apostila: Curso de java IIIApostila: Curso de java III
Apostila: Curso de java III
 
Apontamentos psi m18
Apontamentos psi m18Apontamentos psi m18
Apontamentos psi m18
 
Transformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para jsonTransformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para json
 

Mais de Thyago Maia

Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1
Thyago Maia
 
Programação Dinâmica para Web - Aula 1
Programação Dinâmica para Web - Aula 1Programação Dinâmica para Web - Aula 1
Programação Dinâmica para Web - Aula 1
Thyago Maia
 
Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1
Thyago Maia
 
Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3
Thyago Maia
 
Desenvolvimento Web com PHP - Aula 2
Desenvolvimento Web com PHP - Aula 2Desenvolvimento Web com PHP - Aula 2
Desenvolvimento Web com PHP - Aula 2
Thyago Maia
 
Desenvolvimento Web com PHP - Aula 1
Desenvolvimento Web com PHP - Aula 1Desenvolvimento Web com PHP - Aula 1
Desenvolvimento Web com PHP - Aula 1
Thyago Maia
 
Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3
Thyago Maia
 
Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2
Thyago Maia
 
Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1
Thyago Maia
 
Mantenha sua Privacidade e Segurança na Web com o Tails
Mantenha sua Privacidade e Segurança na Web com o TailsMantenha sua Privacidade e Segurança na Web com o Tails
Mantenha sua Privacidade e Segurança na Web com o Tails
Thyago Maia
 

Mais de Thyago Maia (10)

Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1
 
Programação Dinâmica para Web - Aula 1
Programação Dinâmica para Web - Aula 1Programação Dinâmica para Web - Aula 1
Programação Dinâmica para Web - Aula 1
 
Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1Metodologia e Linguagem de Programação Avançada - Aula 1
Metodologia e Linguagem de Programação Avançada - Aula 1
 
Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3Desenvolvimento Web com PHP - Aula 3
Desenvolvimento Web com PHP - Aula 3
 
Desenvolvimento Web com PHP - Aula 2
Desenvolvimento Web com PHP - Aula 2Desenvolvimento Web com PHP - Aula 2
Desenvolvimento Web com PHP - Aula 2
 
Desenvolvimento Web com PHP - Aula 1
Desenvolvimento Web com PHP - Aula 1Desenvolvimento Web com PHP - Aula 1
Desenvolvimento Web com PHP - Aula 1
 
Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3
 
Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2
 
Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1
 
Mantenha sua Privacidade e Segurança na Web com o Tails
Mantenha sua Privacidade e Segurança na Web com o TailsMantenha sua Privacidade e Segurança na Web com o Tails
Mantenha sua Privacidade e Segurança na Web com o Tails
 

Último

Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
MateusTavares54
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
1000a
 
iNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdf
iNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdfiNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdf
iNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdf
andressacastro36
 
Sinais de pontuação
Sinais de pontuaçãoSinais de pontuação
Sinais de pontuação
Mary Alvarenga
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
mamaeieby
 
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdfCaderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
enpfilosofiaufu
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática
Giovana Gomes da Silva
 
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdfCADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
NatySousa3
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de CarvalhoO sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
analuisasesso
 
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptxA dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
ReinaldoSouza57
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
TomasSousa7
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
LucianaCristina58
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
WelberMerlinCardoso
 
socialização faculdade uniasselvi 2024 matea
socialização faculdade uniasselvi 2024 mateasocialização faculdade uniasselvi 2024 matea
socialização faculdade uniasselvi 2024 matea
ILDISONRAFAELBARBOSA
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
MarcosPaulo777883
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Biblioteca UCS
 
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
Escola Municipal Jesus Cristo
 

Último (20)

Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
 
iNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdf
iNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdfiNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdf
iNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdf
 
Sinais de pontuação
Sinais de pontuaçãoSinais de pontuação
Sinais de pontuação
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
 
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdfCaderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática0002_matematica_6ano livro de matemática
0002_matematica_6ano livro de matemática
 
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdfCADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
 
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de CarvalhoO sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
 
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptxA dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
 
Livro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo FreireLivro: Pedagogia do Oprimido - Paulo Freire
Livro: Pedagogia do Oprimido - Paulo Freire
 
socialização faculdade uniasselvi 2024 matea
socialização faculdade uniasselvi 2024 mateasocialização faculdade uniasselvi 2024 matea
socialização faculdade uniasselvi 2024 matea
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
 
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
 

Desenvolvimento de sistemas web com php Frameworks - Aula 1

  • 2.
  • 3.  Possui várias definições:  “Um conjunto de classe que encapsula uma abstração de projeto para a solução de uma família de problemas relacionados”;  “Um conjunto de objetos que colaboram para realizar um conjunto de responsabilidades para um domínio de subsistema de aplicativos”;  “Define um conjunto de classes abstratas e a forma como os objetos dessas classes colaboram”;  “Um conjunto extensível de classes orientadas a objetos que são integradas para executar conjuntos bem definidos de comportamento computacional”;  “Uma coleção abstraída de classes, interfaces e padrões dedicados a resolver uma classe de problemas através de uma arquitetura flexível e extensível”;
  • 4. Observe que um framework é uma aplicação “quase” completa, mas com “pedaços” faltando:  Ao receber um framework, seu trabalho consiste em prover os “pedaços” que são específicos para sua aplicação;  Um framework provê funcionalidades genéricas, mas pode atingir funcionalidades específicas, por configuração, durante a programação de uma aplicação;
  • 5. Vantagens: Maior facilidade para detecção de erros; Eficiência na resolução de problemas; Otimização de recursos; Concentração na abstração de solução de problemas; Modelados com vários padrões de projeto;
  • 6.
  • 7. Framework PHP open-source criado por Taylor Otwell; Objetiva o auxílio no desenvolvimento de aplicações Web baseados no padrão de projeto arquitetural MVC; Se tornou recentemente um dos frameworks PHP mais populares, ao lado do Symfony, Zend, CodeIgniter, entre outros; Hospedado no GitHub e licenciado nos termos da licença MIT;
  • 9.
  • 10.  O Homestead é o ambiente de desenvolvimento oficial do Laravel;  Trabalha com o Vagrant, que provê uma forma elegante para gerenciamento de máquinas virtuais para ambientes locais de desenvolvimento;  Logo, o Homestead é um Vagrant Box (uma máquina virtual) que provê todas as aplicações e configurações de servidor necessárias para que o Laravel seja utilizado em um projeto PHP OO;
  • 11. Alguns recurso já incluídos no Homestead:  Ubuntu 16.04  Git  PHP 7.2, 7.1, 7.0, 5.6  Apache  MySQL  PostgreSQL  Composer  Node
  • 12. Associado ao Homestead, para facilitar a etapa de produção, outros softwares se fazem necessários:  Git Bash (Para a ativação/desligamento do Homestead, além de executar outros comandos via Terminal, como a criação de classes Laravel);  Filezilla (Para acessar o projeto Laravel via FTP);  MySQL Workbench ou outro cliente MySQL (Para gerenciamento do banco de dados MySQL do Homestead);  Notepad++ (Para a edição de código-fonte);
  • 13. É possível configurar um ambiente de desenvolvimento Laravel a partir do Xampp. Para isso, será necessário a instalação do Composer; Login: eqs Senha EngQua@2015
  • 14.  Para configuração do Xampp, siga os seguintes passos:  Acesse o arquivo C:xamppapache confextrahttpd- vhosts.conf e adicione o código ao lado na última linha do arquivo:
  • 15. Acesse o arquivo C:WindowsSystem32driversetchosts e adicione o código abaixo na última linha do arquivo:
  • 16. A partir de um prompt de comando, acesse a pasta C:xampphtdocs e execute o seguinte comando: Será criada a pasta laravel na pasta htdocs do xampp, já com os arquivos de projeto Laravel;
  • 17. Inicie o PHP e o MySQL no control panel do Xampp, clicando nos botões Start; Acesse a URL laravel.dev (a partir do Firefox) e verifique se a página de boas vindas do Laravel será apresentada!
  • 18.
  • 19. Seleciona controllers e/ou métodos de controller a partir do modelo REST:  Cada mensagem HTTP contém toda a informação necessária para compreensão de pedidos;  Utiliza as operações HTTP para a seleção de controllers e recursos de controller: POST, GET, PUT e DELETE;  Classifica operações de CRUD para a persistência de dados.  Ex.: Quando uma requisição HTTP do tipo DELETE é lançada para um controller, um método de exclusão de dados em banco poderá ser automaticamente executada;
  • 20. O modelo MVC: Utiliza um arquivo php de rotas para checar a operação HTTP requisitada e associá-la a um controller e/ou recurso de controller.
  • 22. A partir do arquivo routes.php, é possível atribuir uma operação HTTP a um controller e/ou recurso de controller;  Ex.: Quando uma requisição HTTP do tipo get for lançada, execute o método da classe controller PrincipalController que apresenta a página de boas-vindas de uma dada aplicação web;  Graças ao arquivo de rotas, não é necessário indicar na URL o recurso a ser acessado;  Ex.: Ao invés do link http://localhost/pagina.php, poderíamos configurar uma rota para que o recurso fique acessível a partir do link http://laravel.dev/pagina  Assim, cada recurso da aplicação pode ser representado por um verbo;
  • 23.  Atribuições de operações HTTP são realizadas a partir da classe Route e de seus métodos estáticos, que representam cada uma das operações HTTP existentes;  Sintaxe básica para a definição de rota: Route::<operação_HTTP>(‘/verbo’, function() { // O que será feito quando essa rota for acessada });
  • 24.  Exemplo: Abra o arquivo routes/web.php e crie a seguinte rota: Route::get(‘/php-info’, function() { phpinfo(); });  Abra o navegador, acesse http://laravel.app/php-info e verifique se a página de informações sobre o servidor PHP será apresentada;
  • 25.  Exemplo 2: Abra o arquivo app/Http/routes.php e crie uma nova rota: Route::post(‘/contato’, function() { print_r(Request::all()); });
  • 26.  Exemplo 2: Crie uma outra rota: Route::get(‘/formulario’, function() { return ‘ <form method=“post” action=“/contato”> Nome: <input type=“text” name=“nome”> Email: <input type=“text” name=“email”> Mensagem: <textarea name=“mensagem”></textarea> <input type=“submit” value=“Enviar”> </form>’; });
  • 27.  Abra o navegador, acesse http://laravel.app/formulario e verifique se o formulário criado na segunda rota será apresentado. Digite suas informações de contato e os submeta, afim de verificar se a rota post será executada;  Algum problema?
  • 28.  Abra o navegador, acesse http://laravel.app/formulario e verifique se o formulário criado na segunda rota será apresentado. Digite suas informações de contato e os submeta, afim de verificar se a rota post será executada;  Algum problema? SIM  Todo formulário Laravel precisa submeter um Token, chamado CSRF, para que possa enviar operações HTTP em aplicações Laravel (por questões de segurança!);
  • 29.  Como só podemos inserir tais tokens em formulários implementados em Views (olha o MVC aí de novo!), por enquanto, vamos desligar esse recurso, comentando a linha de código que implementa esse recurso no arquivo app/Http/Kernel.php;
  • 30.  Abra o navegador, acesse http://laravel.app/formulario e verifique se o formulário criado na segunda rota será apresentado. Digite suas informações de contato e os submeta, afim de verificar se a rota post será executada;
  • 31.  Métodos da classe Route disponíveis para rotas:  Route::get($uri, $callback); - Utilizado de forma geral para navegar entre páginas;  Route::post($uri, $callback); - Utilizado de forma geral para alterações no lado do servidor;  Route::put($uri, $callback); - Utilizado de forma geral para atualizações de um recurso existente;  Route::patch($uri, $callback); - Utilizado de forma geral para atualizações de um recurso existente;  Route::delete($uri, $callback); - Utilizado de forma geral para remover um recurso existente;
  • 32.  Também é possível definir vários verbos para uma única rota com o método match: Route::match([‘POST’,’GET’], ‘/formulario’, function() { if(Request::isMethod(‘post’)) return print_r(Request::all(), true); else { return ‘ <form method=“post” action=“/formulario”> Nome: <input type=“text” name=“nome”> Email: <input type=“text” name=“email”> Mensagem: <textarea name=“mensagem”></textarea> <input type=“submit” value=“Enviar”> </form>’; } });
  • 33.  Também é possível definir todos os verbos para uma única rota com o método any: Route::any(‘/formulario’, function() { if(Request::isMethod(‘post’)) return print_r(Request::all(), true); else { return ‘ <form method=“post” action=“/formulario”> Nome: <input type=“text” name=“nome”> Email: <input type=“text” name=“email”> Mensagem: <textarea name=“mensagem”></textarea> <input type=“submit” value=“Enviar”> </form>’; } });
  • 35. Até o momento, não passamos nenhum parâmetro nas nossas requisições (rotas). Mas em muitas aplicações, essa necessidade pode surgir; Para isso, a sintaxe na definição do verbo muda um pouco, onde será necessário explicitar os parâmetros na sua definição;
  • 36.  Exemplo: Abra o arquivo routes/web.php e crie a seguinte rota: Route::get(‘/contato/{id}’, function($id) { printf(‘Olá, o seu ID é %s’, $id); });  Abra o navegador, acesse http://laravel.app/contato/25 e verifique se o ID 25 é apresentado no navegador. Se nenhum parâmetro for enviado, será gerada uma exceção;
  • 37. Já que nossa rota espera um id, vamos alterá-la para aceitar apenas números (atualmente ela também aceita strings!); Para isso, basta invocar o método where após a definição da rota, passando como parâmetro o nome do parâmetro e a expressão regular que impõe o uso de números;
  • 38.  Exemplo: Abra o arquivo routes/web.php e crie a seguinte rota: Route::get(‘/contato/{id}’, function($id) { printf(‘Olá, o seu ID é %s’, $id); })->where(‘id’,’[0-9]+’);  Abra o navegador, acesse http://laravel.app/contato/sport e verifique se o ID ‘Sport’ é apresentado no navegador. Se nenhum parâmetro for enviado, será gerada uma exceção;
  • 39.  Exemplo: Podemos passar mais de um parâmetro. Abra o arquivo routes/web.php e edite a seguinte rota: Route::get(‘/contato/{id}/nome/{nome}’, function($id,$nome) { printf(‘Olá %s, o seu ID é %s’, $nome, $id); });  Abra o navegador, acesse http://laravel.app/contato/Thyago/25 e verifique a saída apresentada no navegador. Se nenhum parâmetro for enviado, será gerada uma exceção;