[Música] fala devis seja muito bem-vindo e bem-vinda ao curso gratuito de PHP esse curso é uma preparação paraa nova formação em PHP que vai chegar na plataforma da Rocket City no dia 10 de outubro e que logo logo nós vamos dar mais detalhes de como a nova formação vai funcionar aqui você vai explorar uma das tecnologias mais utilizadas do mundo que é o próprio PHP e com o suporte de Um Framework extremamente relevante no mercado que é o larva esse Framework ele tem se destacado ah por ser extremamente simples pela sua robustez e pelo fato
de receber atualizações constantes e quando digo constantes é constante mesmo praticamente toda semana tem atualizações novas do larva para garantir melhor performance segurança e trazer mais recursos para você utilizar na sua ferramenta e claro seguindo as tendências no mercado Então você vai Aprender a dominar essa ferramenta atual para desenvolver aplicações web de maneira eficiente e escalável e criar um diferencial enorme na sua carreira então rapidinho antes da gente começar a ver o projeto é ver em detalhes do projeto que a gente vai trabalhar eu quero falar um pouquinho sobre mim para você que não me
conhece meu nome é Rafael L Nardelli eu sou desenvolvedor há há mais de 15 anos atualmente eu sou CTO de uma consultoria de desenvolvimento software Especializada em PHP Lar chamada Dev Squad que é situada nos Estados Unidos então eu posso dizer com muito orgulho que somos a maior codia Peg pel arvel do mundo com mais de 70 devs a debaixo da gente nós temos criado bastante produt muitos produtos com PHP larv produtos de pequeno médio e extremamente grande porte então eu posso dizer com toda a experiência que eu tenho que sim PHP larv é uma
excelente ferramenta para todos os níveis todos os tamanhos de Software de de produto que você queira desenvolver tá bom além disso eu tenho um canal no YouTube chamado do pinguim do laravel e você que me conhece de lá eu nem preciso mais me apresentar porque você já me conhece mas para quem não me conhece é um prazer estar aqui no Rocket City mostrando e ensinando tudo que eu sei sobre PHP e sobre larv Como que você pode se tornar um desenvolvedor de produto utilizando essa tecnologia em apenas três aulas nós vamos construir um Projeto eu
vou mostrar depois com mais detalhes para você mas o projeto vai ser uma plataforma de freelan pessoas vão poder colocar os seus projetos e os freelancers vão dar as suas propost propostas e a única diferença é que não vai ser em em valor monetário mas a proposta vai ser em quantidade de horas que você receber eu vou eu vou mostrar passo a passo direitinho o que que vai acontecer nesse projeto já já mas saiba que isso aqui esse conteúdo é um Conteúdo inédito tá então aproveite muito essa oportunidade porque as aulas vão ficar disponíveis somente
essa semana para você assistir no horário que você preferir aí para chegar até ao final do curso preciso que você Se comprometa a assistir todas as aulas e claro colocar a mão na comigo para que você possa sair daqui com um projeto novo pro seu portfólio e Um certificado no seu currículo Lembrando que quem tiver alguma dificuldade ou dúvida de Como acessar o o curso gratuito de PHP basta acessar entrar na nossa comunidade do discord tá o link dela e todas as outras informações estão Reunidas no guia do curso que você recebeu por e-mail e
também é importante que você entre no nosso grupo do WhatsApp exclusivo pros participantes para não perder nada e participar do sorteio de de bolsa de estudos e garantir seus justificados e muito mais que está por vir então bora lá pro código que vou te Mostrar em detalhes o que que é esse projeto que que a gente vai fazer nesse projeto Beleza então a gente vai construir eh um software de freelancer ou seja nós vamos ter projetos que vão ser publicados na nossa plataforma e como um freelancer eu vou dar enviar a minha proposta e o
meu a o meu valor ou seja o meha minha meu dinheiro dentro da plataforma vão ser horas né quantas horas eu consigo fazer esse projeto então por exemplo aqui temos um exemplo Da Landing Page para um pet shop tem a descrição do projeto as tecnologias que eu estou esperando utilizar quem que foi quem que foi o quem que publicou esse projeto e na hora de enviar uma proposta você vai colocar o seu e-mail e quantas horas você espera fazer n aquele aquele aquele projeto uma vez enviado nós vamos mandar notificações pro pro Public nós vamos
mandar informações depois para cada eh para cada freelancer que Que enviou a sua para próximo para dizer se ele ainda tá ganhando se ele tá perdendo Em qual posição que ele tá Então nesse pequeno projeto nós vamos aprender muitos conceitos né Nós vamos ah aprender o a introdução ao PHP nós vamos aprender a introdução ao LW é um Framework ah com com arquitetura mvc mod vi controler que é muito tranquilo de se entender o fluxo do do request lá dentro nós vamos aprender o Live Wire que que vai nos trazer Ah posso dizer Reatividade pro
nosso PHP se a necessidade de nós escrevermos ah código JavaScript para poder se comunicar com o backend ter uma reatividade dentro do nosso produto né dentro do nosso projeto e também nós vamos aprender muitas coisas de nós vamos aprender como enviar e-mail como trabalhar com filas que esses e-mails vão ser todos enviados através de uma fila como é que a gente se conecta e sim tudo isso temem 3 horas para você ver Como que ah o laravel ah junto com o PHP te dá muita possibilidade te faz construir coisas muito rápido tá beleza eu não
vou focar muito na parte de design ou seja Ah eu vou trazer já os elementos de CSS de os componentes já prontos para para para que a gente possa focar na parte do fluxo de dados dentro do larel e também a parte de backend que é o mais importante aqui da nossa proposta tá entender como que a gente se conecta numa fila como que a gente se Conecta num banco de dados como que a gente envia uma mensagem né um e-mail através a do nosso do nosso Framework tá todos esses elementos beleza e a gente
vai começar ah preparando o nosso ambiente para poder e para poder ter o PHP instalado além do PHP Você vai precisar do composer né o composer é é um package Manager do PHP ou seja ele é o nosso package Jon que a gente vai ter o composer Jon e aqui a Gente vai instalar pacotes para poder utilizar o que são esses pacotes são pedaços de código disponibilizados por outras por outros desenvolvedores que a gente adiciona dentro do nosso projeto para nos dar mais habilidades o larv é um desses pacotes né então nós instalamos o laravel
com diversos pacotes já pré-configurados para que a gente consiga utilizar Então você vai precisar do PHP do composer e sim temos elementos de tela né temos elementos de JavaScript ainda embutidos dentro do nosso projeto Então a gente vai precisar do node né que eu espero que você já tenha instalado na sua máquina mas a gente vai eh eu vou passar aqui como que você pode ter todos esses elementos de maneira bem simples A sua máquina se você Ah tem você trabalha com Windows ou Mac OS o Linux ele é um pouco mais trabalhoso Tá mas
para Windows e Mac OS tem uma maneira super fácil de você ter todos esses elementos dentro da sua Máquina bem rapidinho tá bom então ah entendido a proposta entendido o que nós vamos fazer vamos então iniciar né Vamos paraa parte de instalação do nosso ambiente a gente segue a partir daí beleza bom então a primeira coisa que a gente vai fazer instalar todos esses elementos na nossa máquina tá eu vou te mostrar uma maneira bem simples para você ter todos esses elementos disponíveis Então a gente vai aqui no Firefox e você vai procurar você vai
Digitar herd hd. laravel.com tá então esse projeto herd ele é um ambiente é uma configuração de ambiente local que você consegue ter no na sua máquina e é literalmente install software né então você vai fazer o download e você vai instalar eh conforme o seu Sista operacional no caso aqui eu tenho o macos então eu vou baixar e fazer a instalação desse projeto tá e se você tiver o Windows por exemplo você Vai fazer o download do do executável do Windows e fazer a instalação tá E aí ele vai te liberar aqui no na no
Tray né na Ah um ícone que você vai poder configurar e ver todos os elementos que ele te dá tá eh Não se preocupa nessa parte aqui de mail dumps log viewer e e Services porque isso aqui é uma parte paga do desse desse produto mesmo mas você não precisa ter na sua máquina tá ã o básico que ele que ele te dá já é toda o gerenciamento ah de sites e o PHP E também o o node e o composer que é o tril que você precisa para poder começar não se preocupa com isso
aqui não se assuste ele vai pedir na instalação uma licença Mas é só você ignorar e seguir o jogo e o resto tudo tudo ótimo tá bom se você tiver o macos vai ser em cima né não vai ser embaixo como no Windows e você vai ter as mesmas coisas tá bom Beleza então é literalmente fazer o download eu já tenho instalado na minha máquina Ah E aí instalar um software só Next next next next de absurdo beleza e quando você ir pro Terminal você vai ter um comando chamado Bird disponível que aí vai ter
outras opções Mas o mais importante é se você digitar where is PHP ele vai está onde Dentro de dentro de her pin PHP se você agora procurar na sua máquina where is composer você vai ter a mesma coisa n dentro de poser e o o node a mesma coisa a o npm né where is npm ele vai est Dentro de her então ele já vem e instala tudo para você você não precisa se preocupar e lá dentro também você consegue ah configurar Então se você for no settings aqui do her você vai ter aqui ó
General PHP e todas as os phps as versões do PGP que você quiser né então eu estou utilizando atualmente a versão 8.3 né a versão 8.4 tá em quase em release já mas nesse momento eu estou utilizando 8.3 que é mais estável o node a mesma coisa você pode configurar aqui instalar as versões do node né eu estou utilizando a versão 21 né podemos utilizar a versão 2 enfim é só instalar e com isso aqui Você já tem o suficiente Então vamos lá então com isso tendo o PHP na sua máquina você vai ter um
também uma linha de comando chamado PHP que você pode rodar ah arquivos php e o PHP é uma linguagem interpretada Ou seja a ela não precisa Ser buildada a língua Ou seja assim que você e criou um arquivo PHP você não precisa rodar um build nela para criar um binário que daí a máquina vai entender não quem executa esses arquivos.php é o próprio serviço né o próprio PHP que vai receber o request ele vai executar aquele arquivo então o que que isso quer dizer quer dizer que se eu vier e criar um arquivo chamado index.php
tá Ah todos os arquivos php todos os scripts PHP precisam começar com esse padrão que é a maior e interrogação e PHP eu consigo escrever algum comando PHP aqui então eu vou salvar esse arquivo e aí como eu falei o próprio Script o próprio o executável PHP ele que vai interpretar esse index.php assim que eu executar e ele vai eh fazer o que tem que fazer então todo o request que chega tá então qu a gente tá falando de sites todo request que chega ele vai Chegar no nosso ninx por exemplo né ele vai o
ninx ele vai passar um comando pro PHP e vai falar assim olha eu estou ah recebendo uma uma chamada nessa rota E aí a gente configura D jins falando o quê Beleza quando chegar algo nessa rota você vai executar o PHP passando o esse diretório como padrão então lá dentro do diretório vai ter Public por exemplo index.php ele já vai pegar o arquivo e executar Exatamente isso aqui daí ele vai Processar e devolver proins né responder pro seu usuário Então essa é a dinâmica o tempo todo que acontece no os projetos quando você tá escrevendo
PHP mais ou menos vamos revisar o request chega né então V ver se eu consigo desenhar aqui para ficar mais fácil pra gente então vamos lá então o que que eu tenho aqui um request vai chegar né então eu tenho aqui dois elementos né eu tenho o o client e eu tenho o server vamos escrever aqui Client e Server tá então o client vai fazer uma comunicação Vamos fazer uma comunicação mais bonitinha aqui né vai mandar um request pro server o server por sua vez ele vai ter alguns elementos aqui né então ele vai receber
no seu serviço de Web Server que no caso maioria das vezes o vai executar o PHP que tá na configuração lá PHP vamos dizer no index.php tá ele vai processar vai Devolver pro jins que por sua vez vai devolver pro cliente processado né então ele vai processar tudo que é código PHP dentro do HTML vai criar aquele testão e vai devolver porins que daí o client recebe e o browser ele já recebe todo o o htm ele pronto só simplesmente para renderizar na tela tá Então nesse caso que eu tô falando de de páginas que
você tá acessando diretamente o index o PHP da vida né se a gente tá falando de api quer dizer que o index.php ele pode Retornar Jon né então retornando um algo de Jon o mesma coisa o browser vai fazer a requisição né via JavaScript via qualquer coisa e ele vai retornar um Jon e o cli vai usar como deveria Então esse é o tem é o que vai acontecer sempre tá lembrando que PHP ele vai interpretar o que for PHP tá bom Beleza então eu posso escrever vários comandos aqui então até Pegar informação do próprio
PHP esse aqui ele vai me trazer uma Ah ó informações do próprio PHP tá vendo do que eu tenho instalad os módulos e e etc os arquivos e as variáveis de ambiente enfim ele vai trazer todas as informações ali do do PHP tá bom beleza ã o próprio HP também vem embutido de um ó local host Vamos colocar de um servidor né se você não quiser usar n inks ele já vem embutido já com Ah um servidorzinho para você rodar então se eu vier aqui agora e colocar Local host 2. 8888 foi o que eu
coloquei Olha aqui que legal eu tenho o meu PHP info em formato HTML né então ele sabe que ele tá recebendo algo do Via ninx né via web via browser e ele converte para HTML para você ver então você vai ter todos os os Mods etc Por que que isso aqui apareceu por causa ah por causa desse meu comando aqui PHP info tá bom esse PHP info ele me traz Todas aquelas informações se eu não quiser e só trazer isso aqui eu vou Trazer só um hello world e assim vai tá bom beleza mais uma
vez PHP tá recebendo request no caso aqui o próprio PHP é o servidor web né então ele tá recebendo request e ele tá eh devolvendo Então olha aqui acept Close então ele tá recebendo as coisas tá bom Beleza então esse é o básico do básico do do PHP com relação à linguagem em si ah a única coisa que é um pouco mais diferente do que você deve estar acostumado são dois elementos Importantes tá que são porque assim funções são funções em todo lugar né então eu posso escrever uma função aqui que vai retornar full e
eu chamo essa função da mesma maneira né então se eu aqui vou salvar vou retornar ele fez um Eco full tá vendo posso fazer aqui um Eco EOL para pular linha hml é outra coisa né vamos voltar aqui vou fazer um um BR beleza Tá então funções são funções sem Problema nenhuma bem tranquilo classes tá Ah eu posso criar classes tranquilamente do mesmo tá vendo a sintaxe não não tem mudado tanto né ah vamos criar aqui um Public function dentro dele chamado bar E aí a gente faz a gente faz o quê Vamos fazer um
Eco eu posso acessar a classe que eu estou através dessa variável chama und und CL und e eu vou colocar aqui e o método então eu vou printar a Classe e o método que eu estou acessando Tá bom vamos Aqui para baixo eu vou instanciar um no teste e eu vou executar o bar então ó pequena diferença do JavaScript já começa aqui tá quando eu estou trabalhando com objetos eu não vou utilizar eu não vou utilizar ponto eu vou utilizar uma flecha sim uma flecha traço sinal de maior aí assim que a gente acessa elementos
dentro de objetos Ah no PHP então Preste bastante atenção Nisso aqui tá bom Beleza então eu vou salvar pera aí Ok o acabou girando algo que não deveria Vou salvar vou voltar aqui e olha lá teste teste bar tá vendo o método e ah o método o classe e o método executado tá posso até subir aqui vamos tirar essa classe e só deixar o método que ele já vai trazer o nome da classe junto beleza teste e bar tá ah beleza outra coisa importante que é diferente das outras linguagens Variáveis toda variável deixa eu colocar
deixa eu colocar um BR aqui também colocar umas linhas para baixo toda variável começa com um sinal de dólar beleza e aí eu posso criar uma Instância dessa minha classe teste dentro n dessa variável dólar sign o sinal de dólar teste tá é assim a costume tranquilo e aí a gente pode rodar o nosso o nosso teste aqui também tá é importante que a Gente tem algumas algumas funções que dentro já embutidas no PHP para nos ajudar a ter visibilidade do que tá acontecendo Então nosso o vard dump eh trate o vard dump como um
console log tá então como se tivesse fazendo um console log para você ver o que que tá acontecendo o Vamp ele vai explodir na tela o que que tem dessa variável né Então essa variável tá vendo ele é um objeto do tipo teste beleza Ah e é essa informação que a gente tem Do da minha da minha variável então se eu colocar mais atributos ou colocar mais informações dentro disso ele vai fazer um wump de tudo ali né então eu posso fazer aqui um a string nome eu vou iniciar com Rafael um Public string eil
B Rafael email.com tá vamos ver o que aparece al no nosso Vardão tá vendo ele aparece todas as propriedades Ah que a gente adicionou da noss da nossa classe né já com o tipo o nome da variável e o valor que ela que ela existe tá então esses conceitos vão vão perpetuar através de todo o projeto tá assim eu eu criei todos esses elementos em linha ou seja um embaixo do outro que a gente vai poder a gente pode fazer isso através de exemplo tá ã Mas a gente pode carregar essas informações Através de outros
ar Arquivos ah adicionar namespace pra gente ter um mapa de onde essas classes estão enfim tem tem muito mais coisas que a gente pode para poder pode usar para poder organizar o nosso código e a gente vai ver vários exemplos disso dentro ah do larv quando a gente instalar o nosso projeto larv Tá mas esse aqui é o básico básico para que você possa entender ao os elementos dentro do PHP né Tudo começa com a com essa chamada né Maior o interrogação Em PHP para que ele consiga identificar o que que tem embaixo é um
é algo são scripts PHP tá funções classes que tem propriedades Ah e métodos tá dentro das classes existem alguns métodos do próprio ciclo de vida do da classe no PHP por exemplo né o Construtor eh eu preciso passar dessa maneira tá então toda vez que eu quero fazer algo no Construtor eu crio und und construct e aqui que você inicializa o seu o seu objeto Tá então vamos voltar Aqui pro Firefox ele agora vai fazer ó dentro do construct eu tenho ele ali tá vendo e aqui eu inicialize ele a segunda vez eu tenho uma
segunda chamada por constr tá bom beleza show hã então com isso a gente já consegue inicializar o nosso projeto larv e entender e navegar pelo projeto lar para ver como que o request funciona lá dentro e algumas outras ah informações importantes pra gente Iniciar pra gente construir o nosso projeto Tá bom então vamos lá então eu vou sair daqui é tem que sair né Tá e importante pra gente inicializar o laravel você precisa saber onde tá a documentação né então vamos pro Firefox laravel.com dentro de laravel.com que é o site institucional né o site principal
dele aqui ah você vai ver muita informação mas mais importante é aqui ó Documentation tá aqui onde vai ter toda a documentação e enfim Uma das uma das vertes do laravel é que eles tem uma excelente documentação tudo que você precisa tá aqui tá depois desse da NW se você quiser se você quiser estudar mais o o larv através da documentação você pode vim aqui no aqui embaixo vamos procurar aqui bootcamp ó laravel bootcamp tá que é um site que te ensina passo a passo A a fazer um projetinho Tá e é bem legal também
você pode usar isso como material de estudo e fazer mais um projeto ah em larv tá vamos lá documentação e vamos inicializar então inicializando environment configuração do do environment inicializando config aqui ó instalação criando um projeto larva então tem algumas maneiras da gente criar um projeto larva tá a gente pode utilizar o composer passando Create Project E aí do tipo laravel laravel e o Nome do nosso projeto então a gente pode utilizar o composer para poder fazer isso tá ah a gente pode instalar globalmente na nossa máquina um instalador do laravel que ele é um
Ah vai ser um um um Ah um executável né um um eh um programa de linha de comando para que a gente possa criar outro os outros projetos então eu gosto de utilizar dessa maneira então você se você instalou utilizando o laravel herd que é o esse cara aqui ele Já vem com o laravel Ah isso instalador embutido então você não precisa rodar isso Tá Mas se caso não tiver roda esse primeiro comando ele vai instalar E aí você vai ter o laravel new disponível na sua máquina ou seja aqui ó laravel se eu digitar
laravel ele vai ter a ele é um comando né uma linha de um instalador de linha de comando você pode ah ter algumas opções de help listar os comandos e o New New principal então Você pode vir aqui laravel New ele vai trazer um promt para você configurar o seu projeto então primeira pergunta qual que vai ser o nome do seu projeto né então eu vou dar o nome aqui de freelance Hours Esse vai ser o nome o nome do nosso projeto Ah ele já tem alguns starters kit disponível tá então laravel Breeze e o
laravel jetstream eh eu não vou passar por esses dois elementos agora tá o importante é saber que existe Então seja já são vamos dizer que já são pedaços de código disponíveis para você ter algumas funcionalidades né para você iniciar o teu projeto tá tanto BR como o Jam cada um tem a sua a sua particularidade mas eu vou vir aqui no Star kit parte de teste por Agora vou deixar Pest Ah mas a gente não vai abordar isso na naw vou colocar um Git Sim e ele já vai instalar a o projeto da nossa máquina
tá então ele vai ó baixa extraindo o arquivo Laravel laravel ã e aqui é o composer trabalhando agora tá e que que ele fez ele criou uma pasta chamada freelancer Hours ele adicionou lá dentro naquela pasta naquela pasta o composer ó freelancer Hours ele já incluiu dentro dessa pasta Eu tenho esse composer Jon e dentro desse composer Jon ele já colocou todos os requirements ó de Framework o PHP ou seja precisa ter o PHP precisa ter o lar Framework e esse aqui são outras funcionalidades que que eu vou Mostrar para vocês depois e a parte
do que precisa para desenvolvimento tá algumas outras configurações do projeto né a gente pode depois mudar aqui o nome o tipo a descrição isso aqui é para você ser encontrado dentro do do composer packages qual que vai ser a licença do seu produto Enfim tudo que você coloca dentro compos Jone é relacionado a Como é o seu projeto tá ã o autoload aqui dentro do do composer é um pedaço extremamente importante por Ele vai mapear Ah eu vou mostrar para você na parte de classes que ele tem namespace Ou seja você consegue né dizer em
qual caminho esse teu se tua classe ela se encontra dentro do seu projeto para quando você for instanciar classes de outros lugares você importar para dentro do seu arquivo e saber do que se trata Então esse autoload PS R4 principalmente esse App ele tá falando o seguinte olha mapeia tudo que for épico com a maiúsculo barra Barra eu vou inicializar você vai trazer como referência o ao diretório app com a minúsculo tá então ele só faz essa substituição a mesma coisa para esses outros elementos de Database factors e Database seeders por ah normalmente o autoload
do composer ele vai conseguir achar as classes ah de acordo com o caminho do diretório específico né então ele vai falar assim Beleza então você tá querendo H um um Uma classe dentro do diretório app nam Space app Então tem que ser a minúsculo e seguir o jogo né mas a o padrão que o que o PHP e a comunidade usa que é eh dita pelo PSR 4 aqui tem que ter o a tem que ser capitalizado né ou seja um título né o a as primeiras letras precisam ser maiúsculas mas às vezes você não
quer que seu diretório seja com com a maiúscula né com a primeira letra maiúscula então você pode vir aqui e fazer esse mapeio né então tudo que Tiver dentro de app é o namespace é com a maiúsculo tudo que tiver dentro de Database factories as primeiras letras são maiúsculas E aí o PHP consegue se achar lá dentro tá a mesma coisa aqui que os testes ão estar disponíveis para o ambiente de test de Dev de desenvolvemento não em produção Ah porque quando a gente faz a instalação do composer nós podemos vamos dizer assim composer instala
todos os pacotes relacionados à produção só né então Neste cenário aqui qual que seria isso seria somente isso aqui tá ele estaria instalaria só o Framework e o laravel Tinker isso aqui tudo ele ignoraria né se a gente falar assim não instala tudo que eu estou no b de teste ID instala tudo que é isso aqui e isso aqui também a mesma coisa o autoload o autoload É se eu quero só paraa produção ele vai carregar mapear só isso aqui se eu quero tudo né Eu quero esses outros dois elementos Aqui também tá isso aqui
é Importante ã esses scripts esses scripts vamos dizer que são eventos que acontecem durante a instalação Ah e aí você pode parametrizar para poder rodar scripts durante a instalação do seu composer né então ó assim que acontecer depois de acontecer um autoload ele vai rodar esses dois elementos dentro Isso aqui faz parte do projeto do laravel em si ele vai rodar um comando do laravel para poder fazer o Discovery dos pacotes para poder carregar tudo Ah Assim que fizer atualização Ah fazer um composer update né ele vai executar Este comando de Peg pertis a vendor
publish ou seja ele vai publicar algumas informações do larv em si e você pode mudar isso aqui conforme a sua necessidade tá então assim que você ele fizer a instalação que é o que a gente acabou de fazer o laravel new ele vai verificar se o arquivo. env não existe Ah e se não existir ele vai fazer Uma cópia já pra gente então todo o projeto ele vem com ponto P exemplo que são variáveis de ambiente Ah que você vai instalar é que você precisa ter para poder rodar né né são informações de banco de
dados enfim relacionadas ao seu próprio ambiente desenvolvimento produção cada um vai ser o seu né aqui ah ele verifica Ah beleza você está criando um novo projeto que aqui também a gente tá acabando de fazer e ele vai Gerar a chave que eu vou mostrar para você por que é importante essa chave ele já vai verificar se o banco de dados e pro padrão ele vem e para você rodar num banco de dados pite não precisa ter o my C instalado post nada disso a gente vai fazer o nosso teste tudo em picolite para você
ter menor fricção possível PR você começar e funciona super bem tá E ele já vai rodar as migrations também beleza e aqui algumas outras informações dos Pacotes adicionais de de e etc Tá mas o esse aqui é o básico tá Então beleza vamos voltar aqui na instalação ó que que ele tá falando ó application aqui setup tá vendo que ele rodou o env logo em seguida depois ele tá fazendo ó beleza roda o myr para mim e ele pergunta qual banco de dados você quer usar cqu light my s Maria DB postgress e sequel server
eu vou rodar squite tá você quer rodar as migrations H Agora sim daí ele fala beleza o Arquivo Database Database picolite não existe você quer criar sim pronto então ele já criou o arquivo para mim e ele já ah executou essas migrations tá E ele termina fazendo a instalação do do composer fazendo o load tudinho lá olha que legal instalando pronto tá aqui ele fala o seguinte application Ready in freelance Hours a aplicação está pronta dentro de freelance Hours Você pode iniciar o seu ambiente local e atavés faz esses comandos Então a gente vai entrar
dentro do freelance Hours como ele sugere aqui e executar PHP artisan serve PP artisan serve agora o nosso projeto está rodando na porta 8.000 Então vamos voltar aqui eu vou trocar este cara para 8.000 e pronto temos o nosso projeto rodando e esse aqui é a página de boas-vindas do laravel tá Mas ele é o nosso projeto como você pode ver aqui já temos uma chamada para essa nossa raiz tá beleza antes da gente chegar na parte de de web mesmo né da estrutura do projeto eu quero te falar deste dessa linha desse script aqui
PHP artisan tá então o artesã ó que interessante o artisan ele nada mais é do que um arquivo PHP tá vendo ele ele é um um arquivo a gente pode abrir aqui no V Studio code já vou abrir o projeto todo tá E aqui temos o artisan tá vendo o artisan nada mais é do que um um um script PHP tá que ele está Car algumas informações ele está carregando o vendor autoload Então esse required vendor autoload o vendor autoload são todos os pacotes extras que nós instalamos via composer ele fica ele existe dentro de
vendor né então você deve est acostumado com node que fica Dentro de node modules o composer ele fica dentro de vendor então tem tudo isso aqui já carregado dentro do nosso projeto porque veio com necessidade de outros então é requirements requirements e requirements porque a gente instalou o lar e todos aqueles outros elementos Tá bom então ele carrega tudo fala beleza carrega tudo que eu tenho lá de de compos E aí ele executa o o o Bootstrap app E ele fala beleza agora renda o comandos aqui e cuida dos Comandos que Estão vindo do do
de fora né então se Bootstrap app é o nosso projeto l em si então se nós vermos aqui em Bootstrap app.php é aplicação n é o boot é o start da nossa do laravel tá então ele cria uma aplicação né e ele retorna isso E aí ele consegue o artisan consegue carregar tudo que tem lá dentro então esse rend comando ele é nada mais é do que um método dentro da classe enorme né da gigante classe do do laravel em si tá e esse New argument input nada mais é do Que no nosso PHP artisan
serve o serve ele é o comando né esse o argumento do comando que a gente tá passando lá para dentro quer dizer o quê quer dizer que se eu não passar nada e eu vou ter uma lista deixa eu diminuir aqui para ficar mais fácil de ver eu vou ter uma lista de comandos que eu posso executar utilizando o PHP artesão então ele me traz muitos comandos para facilitar minha vida na hora de criar elementos pro nosso projeto por exemplo eu quero Criar um Model Então eu tenho um make Model como você pode ver aqui
né para eu poder criar uma classe o que que é um Model o Model é uma representação de um registro no banco de dados então com ele além de eu representar através de uma classe um registro no banco de dados ele me traz todos os ah poderes para fazer consultas dentro da daquele da daquele contexto daquele modo aquela tabela daquele modo então todas essas consultas no banco de dados ah normalmente se Iniciam através de um modo né para você ter um escopo e e fazer um com um todo o controle ali então todas as classes
eh todos os o as features que o laravel tem você pode utilizar make alguma coisa para poder criar aquela aquela classe específica que daí ele vai colocar já no diretório certo ele vai Ah fazer todas as implementações necessárias para que aquela classe de fato seja um moddel então por exemplo se nós viermos aqui eu tenho App models user.php tá então esse App moduls user.php ele precisa estender algumas outras classes para ele de fato ser um moddel n no caso específico do user ele ainda Precisa estender de alguma outra classe que é o authenticatable para que
ele possa eh cuidar da parte de autenticação que é através do user que a gente faz autenticação no nosso sistema né Beleza então quando a gente usa o o make Model isso aí facilita a vida então Eu vou vir aqui então a gente não tem nada o nosso Brand Tá limpa se eu digitar pegap a make Model ele vai me trazer um Prom de comando também e eu vou digitar alguma coisa aqui ó vou digitar flight mesmo tá E aí ele pergunta beleza junto com o modo junto com a classe de modo que você quer
você quer adicionar alguma outra coisa por exemplo a migration relacionada para você criar o banco de dados eu não vou colocar n disso agora só quero te Mostrar o moddel em si tá então Model agora vamos ter dentro de models né dentro aqui de models flight vamos ter Model flight e eu tenho a nossa classe que estende do MOD tá vendo Então eu não preciso ter esse has Factory eu não preciso ter isso aqui também não mas para que ele seja o moddel ele precisa estender de um modo se for só uma classe vazia ele
não tem poderes de mod ou seja ele não vai e eu não vou ter poderes de Consulta no banco de dados não vou ter poderes de representação do do eu vou ter que implementar tudo isso na unha né que é o que vem do extend Model tá bom ah importante isso aqui é como você estende de uma alta classe seja o Class ela é uma hierarquia né eu esqueci o nome da palavra mas enfim você entendeu né você estende todos os poderes dessa outra classe né então você é uma filha né você na orientação objeto
tá bom à Tá bom então importante então pega peran make pega peran você tem um monte de coisa então tem outras outros ah comandos aqui né Na parte de scheduling na parte de rotas eu posso listar todas as minhas rotas que eu tenho no sistema que no caso aqui eu só tenho três o Story de alguma coisa já vem por padrão o Up já vem por padrão e a Rot também o Up é para você ver se seu projeto tá tá no ar ou não né ó lá ah Não estou PHP artisana ser Pronto aplication
está rodando Isso aqui é para você colocar em H ferramentas para ver se o projeto tá no ar ou não sabe E aí ele ele verifica tá bom importante o PP artizan tem muitos outros comandos que a gente vai passar e ver no no decorrer da das aulas Ah mas você vai ter a familiaridade mas ah é importante saber como usa e como Lista tudo e enfim você vai conhecendo pouco a pouco cada um deles né Por exemplo exemplo eu posso vir aqui e digitar PP artisan about e ele vai me trazer as informações do
meu próprio projeto né as variáveis de ambiente tá vendo o nome da minha aplicação e a versão do Lar a versão do PHP do composer Qual o ambiente que eu estou se o debug mode tá habilitado ou não Qual que é o RL se tá em mod de manutenção Enfim informações de Cash que que eu tô utilizando para cada uma dessas desses elementos os drivers ah de e-mail de fila de banco de dados e todas essas informações onde eu posso encontrar no meu ponto en né então o nosso app name aqui por exemplo se eu
mudar para freelance Hours eu volto lá Peg peran about o meu nome da aplicação mudou para sur lance Hours E se eu eu vou deixar eu vou Deixar aqui o PHP artisan server rodando facilitar nossa vida então vamos voltar aqui o nosso vs code freelance Hours eu vou no Welcome e a gente pode pegar essa informação do confing app name e se não tiver nada lá vamos colocar lá mesmo Olha aqui que legal fico olhando aqui em cima assim que eu de um Reload na página freelance Hours hã freelance Hours bom então pega per aqui
eu queria te mostrar aqui já Espero que você já tenha entendido que a gente vai utilizar bastante el e uma coisa importante Toda vez que você me vê escrevendo só a isso aqui é um Peg tá se no meio do do das aulas você me vê escrevendo a ver de pegar p artisan é porque eu criei um alas no meu na minha variável de ambiente para poder mapear então para não ficar escrevendo pegar apzão o tempo todo eu digito a e tá tudo certo então a Make Model é o meu PHP artisan tá bom se
caso eu esquecer de escrever o PHP artisan por completo tá bom beleza assim como outros AAS que eu acabo utilizando no no dia a dia por exemplo gst Git status Ah que nem esse essas mudanças que eu fiz de welc de flight se não quiser nenhuma dessas mudanças eu escrevo né que é um kit reset eí eu volto para pro que tava antes tá ã Beleza então vamos pro ciclo de Request eu quero te mostrar como que o laravel lida com o request que tá vindo e por onde que essa informação passa dentro dele tá
bom beleza Ah vamos V vs Studio code ou melhor deixa eu trazer aqui eu vou dar um list th para mostrar em forma de de árvore eu quero te mostrar o seguinte tá Ah aqui a gente tem vários diretórios né então Ó nós temos o diretório do Git que não nos importa nós temos o diretório do app tá Que isso aqui onde vai ter a maior parte do nosso código de Business mesmo tá como eu te mostrei antes o Bootstrap aqui onde tudo se inicia Então tudo com o o start do nosso projeto né da
aplicação em si Ah ela inicia aqui então a gente pode colocar alguns arquivos de extras algumas configurações extras o diretório de config que a gente já passar depois quando tiver necessidade par de banco de dados o Public ou index.php então quando o Request chega ele vai procurar essa nossa pasta Public e principalmente o arquivo index.php tá então quando a gente abrir esse arquivo Public index.php aqui que inicializa o nosso projeto tá vendo ó tá indo buscar lá no Bootstrap app e tá fazendo handle request diferente do artisan que ele faz o mesmo load e faz
um handle Command ou seja cuida de comandos o nosso index PHP Ele vai lidar com quests tá importante isso aqui vamos volar aqui pro terminal temos as nossas pastas de ah de resource aqui em cima que Aqui é onde fica nossos arquivos de frontend então tudo que é de CSS tudo que é de JavaScript e tudo que é View ou seja tudo que é a nossa página em si como o nosso Welcome que eu abri para mostrar para você ele vai ficar dentro de resource Views tá aí temos as nossas configurações de Rota tá tudo
que é rota de web tudo que é rota de console o que que é rota de console você pode criar outros comandos né via pro console e você pode colocar aqui dentro e web é a nossa rota então routes web é onde a gente parametriza a rota que a Gente Tá acessando então no caso aqui se eu acessar a barra eu vou carregar View Welcome né se eu vier e digitar uma outra outra rota eu quero Retornar um só um oi tá eu vou vir lá vou digitar outra Rota e eu retorno um então aqui
que a gente configura as nossas rotas é claro que como é um mvc Model View Controller aqui dentro dessa segunda no parâmetro a gente vai adicionar controladores tá bom beleza vamos voltar lá ah Storage onde guarda todos os eh arquivos extras mesmo de logs rela ao Framework usa para poder colocar as Informações de cache e se a gente salvar algum algum arquivo dentro do nosso projeto né que não seja no S3 se caso a gente tiver necessidade se for só local a gente guarda dentro desse stor de app Aí temos ah as informações de teste
que a gente não vai passar tudo que é de vendor e os arquivos raiz do nosso projeto que é o en informações de Edit config tem ignor atributos compos o composer lock ele funciona do mesmo jeito do package Lock ou seja Depois que você D um composer install composer install ele vai criar o lo para poder travar as versões que você tem e aí se caso você quiser fazer um composer update para poder atualizar as versões ele vai atualizar o lock também tá Ah em configurações de Vit o package Jon Quando a gente tiver necessidade
ã de instalar elementos do package então ele já vem com BS configurado e ele vai fazer o seguinte Ah ele vem com Um um Plugin do próprio laravel por o que que acontece aqui na na parte de de frontend né Nós escrevemos dentro de app do dentro de resource então nosso código ele vai ficar aqui dentro tá de resources CSS e JS respectivamente mas quando ele vai fazer o build quando ele vai ele executa isso aqui o o nosso cliente ele não vai ter acesso à pasta de resources Ele só tem sua pasta Public Então
quando a gente builda então eu vou buildar ele aqui para te mostrar eu vou fazer um você pode usar Ban você pode usar npm o que seja né npm Run Deixa eu confirmar lá build PR produção né então Vit não tá instalado vamos instalar PM install e a gente vai rodar um npm Run build já instalou então npm Run build Então olha aqui ele pegou tudo que tem dentro de app.cs e js.css e ele colocou dentro de Public build e assets Vamos voltar lá ó ele criou essa pasta build que é onde tem os assets
de fato acho que o app CSS não tem nada né Vamos colocar aqui Welcome background color Black só para para ter alguma coisa vou voltar lá vou dar um build novamente agora Ele criou CSS e o JS o CSS e o JS tá o que a gente tem de de de CSS o que a gente tem de jav tipo padrão ele já adicionou axos aqui mas eh nem nem precisa desse elemento né mas Ele traz como um exemplo a inicializar tá joia Ah esses conceitos são importantes tá agora vamos pro ciclo de vida da nossa
do nosso request o request ele entra lembrando o o request ele vai entrar e ele só vai ter acesso a essa nossa pasta Public e o index Tudo começa aqui tá então todo request que entra ele vai fazer a mesma coisa ele vai carregar o vendor autoload ele vai ver se tá em modo de manutenção né ele vai carregar Tudo que tem do autoload ele vai carregar o laravel ele vai carregar o Framework e ele vai começar beleza carreguei o Framework agora começa a cuidar requests então ou seja se eu vier aqui dentro desse Public
index PHP e digitar PHP info e matar requisição dentro do meu projeto ele só vai ter eh o PHP info não importa a rota que eu tô Ele sempre vai cair lá tá então ele vai cair e eu vou carregar o PHP info ou seja tudo começa Por aqui não importa a rota que você vai Ele sempre vai cair aqui e mais uma vez a aplicação vai cuidar da requisição então se eu estou vindo de uma rota da outra a rota ou se eu estou vindo da raiz não importa aqui apareceu porque tá em cash
né eu tô fazendo um para trás no no histórico então ele sempre vai cair dentro de Public index.php sempre sempre sempre tá bom tá ã E aí o Nossa aplicação começa a cuidar Dos requests o primeiro lugar que ele vai para poder cuidar dos requests é a nossa rota Então dentro de RS web.php ele vai beleza você tá vindo Da onde Da onde que onde que você tá querendo Acessar Ah tô querendo acessar bar Beleza então faça isso tô querendo acessar outra rota Ah beleza então faça aqui tá Então a nossa nosso gerenciamento de rota
que vai definir o que que você vai fazer tá então no modelo mais uma vez no modelo mvc mvc Aonde m é Model o v é View o c é o Controller tá o o gerenciador de Rota ele vai definir beleza Qual que é o controlador que você quer acessar nesse nosso caso aqui a gente tá fazendo ele tá fazendo um controlador direto na rota né ou seja direto ali mas a gente pode mudar então eu vou voltar aqui no nosso terminal Ah eu vou ver o que que a gente tem que a gente mudou
tirar F isso aqui S vou fazer um npm fazer um npm install novamente só pra gente ter o pack Jone wip é um Git é um Git ponto mais o Git com traço M working Progress então quando eu digitar wip eu tô executando Esse comando todo aqui então para escrever tudo isso a gente escreve só tá bom beleza que que vou fazer Peg make Controller eu vou digitar um Welcome Controller ele vai ser do Tipo invocable tá eu vou arrancar esse cara tudo aqui e eu vou digitar Welcome Controller do P dois pontos Class então
Welcome é a minha classe né é o meu Welcome Controller quando eu digito dois pontos dois pontos Class Ah isso aqui é uma representação em formato de string do nome completo da minha da minha classe então ah se eu vier no meu index aqui ele não vai ter carregado eu vou colocar dentro do meu alum controler Mesmo eu vou digitar return self Class f a rota outra rota não existe e olha aqui ó então se eu digitar Welcome Controller Class ele vai me trazer o nome completo desse meu dessa meu desse meu objeto que que
é o nome completo é onde ele tá o namespace dele por completo então aqui ó namespace ele tá dentro de app http Controller que por sua vez ele está dentro do diretório hã Ele está dentro diretório app htp Controller então normalmente o nome do namespace ele segue o mesmo nome o mesmo caminho físico de onde ele está tá a diferença é que lá no nosso composer Jon a gente especificou que o app minúsculo é é igual a esse App com a maiúsculo aqui tá Então onde você lê app é esse cara aqui tá bom ah
e depois vem o caminho físico então o resto é normalmente é com maiúsculo então htp Controller e aqui o nome do arquivo maiúsculo Então essa aqui é a Convenção para classes no no PHP tá bom É é você ter com com as primeiras letras sempre maiúsculo tanto do diretório Quanto quanto do arquivo Tá bom então e aqui também é classe com Camel Case não é tudo com a primeira letra maiúscula tá bom Beleza então por isso que você vai ver classes com quando a gente tá referenciando classes como a primeira Letra maiúscula e nos resources
quando a gente tá falando de arquivos puros no PHP no caso aqui que é só um um HTML a gente é tudo minúsculo tanto ao diretório como os outros elementos E como eu falei se você tiver falando de classes aí a gente muda para ah para maiúsculo ó tá vendo feature exemplo test Então são outras classes E aí V tá bom Beleza então lá um controlador que que a gente estava retornando aqui vamos deixar a mesma Coisa retornando o Welcome a do Welcome tá ele retornando a viu do welk mantemos do mesmo jeito então a
nossa rota ele vai vai ele vai identificar beleza temos uma rota barra e eu preciso executar o controlador o Welcome Controller Class esse Welcome Controller Class por sua vez a gente vai acessar ele e ele tem uma só função e ele é und und invoke quando isso aqui acontece Quando a gente coloca und und inv quer dizer que eu não tenho eu não vou ter nenhum outro método a mais dentro dessa minha classe ele vai ser de uma função única então toda vez que eu instanciar ela ela já vai executar isso aqui ela já vai
me trazer isso aqui então por isso que aqui na nossa rota a gente não passou mais nenhuma outra informação né se a gente tiver a necessidade de mudar isso ou seja a gente tiver mais métodos que vão ser acessados publicamente do Nosso controlador a gente pode mudar então por exemplo eu posso vir aqui e mudar o nome para que eu quiser tá dar o nome de Jeremias A única diferença é que aqui no meu minha configuração de Rota eu tenho que passar uma arrei e falar beleza olha acessa esse ah controlador e o método que
eu quero que você acesse lá dentro é o Jeremias se eu voltar aqui ele vai continuar funcionando da mesma maneira tá ó se eu mudar o nome para outra coisa ele vai Dar um erro fal não consigo achar o método do Jeremias lá dentro então no meu gerenciamento de Rota eu não consigo achar o Jeremias tá aqui dentro porque agora index então o que que eu normalmente faço Eu normalmente trabalho com invoca até o momento tiver a necessidade de mudar se eu tiver necessidade de ter outros elementos aqui dentro eu eu mudo né E aí
eu coloco mais coisas mas para Ficar mais simples e dificilmente você vai me ver utilizando eh outros métodos dentro do mesmo controlador eu tenho por princípio eu gosto de utilizar métod ou classes principalmente controladores que fazem somente uma única coisa tá porque fica mais fácil da manutenção fica mais fácil de ler eh ele fica ali no teu escopo certinho e se eu tiver que fazer outros outras ações eu crio outras classes e eu não tenho plano nenhum com isso tá bom ah Beleza então tá então o que que a gente vai temos aqui então a
gente vai temos é difícil né O que que temos revisando a rota o nosso index.php no Public ele vai acessar a o nosso gerenciador de Rota o nosso gerenciador de Rota vai definir beleza você tá vindo de Qual rota E vai encontrar Qual que é o controlador que eu tenho que acessar o controlador por sua vez ele vai ser o método específico que a gente especificou na rota ele vai ser chamado e ele vai retornar alguma Coisa nesse nosso caso estamos retornando uma View né E essa View esse método View ele vai procurar dentro deste
diretório aqui resources View views né com esse no com E aí tudo dentro dele ele vai conseguir achar se a gente tiver diretórios dentro dele então por exemplo se eu vi aqui criar um folder chamado de de teste e aí dentro do nosso teste eu vou ter um vou dar o nome de Jeremias aqui Blade.php e aqui eu vou ter o meu html tá como é que eu acesso como é que eu passo para essa função que a o arquivo que eu quero está dentro do diretório teste através de dot notation então aqui é ponto
Jeremias eu não preciso passar Blade eu não preciso passar o PHP é simplesmente estou dentro do diretório ah teste e o arquivo é Jeremias é só isso então aqui vou dar um Reload Oi Jeremias tá bom É assim que a gente faz Uma coisa importante das views por padrão o as views elas são elas não são ponto HTML nem são diretamente ponto PHP elas são pon Blade P PHP o que que é esse Blade O que de acho é esse Blade o Blade ele é um interpretador ele é um eh é um template Manager digamos
assim é é um sistema de template para eh o PHP então quando a gente tá trabalhando dentro do Blade a gente ganha alguns poderes a mais que a gente Não teria que nós não teríamos acessando diretamente welcome.php ou Jeremias pphp diretamente o arquivo pphp e e não é por causa do nome que ele se transforma tá não é nativo isso isso aqui é algo do que o o lar já entende o larv já sabe Beleza estou carregando um arquivo P blade.php logo eu vou interpretá-lo com alguns poderes a mais o que que eu quero dizer
com alguns poderes a mais tá se isso aqui fosse simplesmente o arquivo pon PHP e a gente estivesse mesclando ele com o HTML nós precisamos toda vez que estivermos acessando ou querendo colocar algum clipt PHP nesta página nós teremos que fazer o quê abrir e fechar esse nosso bloco PHP então aqui ó eu posso escrever Oi Jeremias por exemplo Oi nossa caramba Jeremias tá dentro junto com o meu HTML Isso aqui vai funcionar isso aqui vai funcionar Tá mas nós teríamos que fazer A abrir esse bloco de PHP toda vez que a gente quisesse trabalhar
com PHP isso seja para todas as coisas se eu quisesse fazer um loop um for eu teria que abrir eu teria que abrir esse bloco então PHP for for each R aqui eu eu faço do pontos e e fecho o PHP eu tenho que abrir um outro lá embaixo and for in e aqui eu coloco o qu eu vou fazer um li e eu tenho que fazer PHP Eco Olha só que coisa vai lá fiz o meu loop certo mas olha que coisa chata fazer escrever tudo isso aqui então com Blade eu ganho Alguns alguns
elementos para facilitar minha vida eu posso reescrever isso aqui como utilizando diretivas Blade são essas diretivas são atalhos então vez de escrever isso aqui tudo eu escrevo for each aí eu escrevo a mesma coisa S e eu fecho and tá vendo com a eu não preciso escrever tudo isso aqui aí para poder printar na tela tá em vez de escrever tudo aquilo de lá de cima ou se você já conhece um pouquinho de de PH você sabe que a gente pode utilizar isso aqui para poder simplificar ainda assim beleza simplifica legal mas eu posso utilizar
dois bigodin para facilitar ainda mais vamos lá ó lá Pri duas vezes de 1 a 20 Então qual que você acha mais simples de se trabalhar dessa maneira ou dessa maneira e mais legal é que com o laravel você consegue estender essas diretiva diretivas e criar até diretivas customizadas tá e o laravel por si só já tem várias dessas diretivas customizadas dentro dele por exemplo eu quero ver se alguém tá autenticado então eu já posso mostrar aqui ó spam você está Autenticado CL que não vai aparecer nada lá né ó não vai aparecer aquele autenticado
porque eu não estou autenticado Tá mas eu posso criar diretivas com algumas lógicas minhas no futuro se eu quiser então ele ele é extensivo né Ou seja você pode extender ele pra sua necessidade tá bom ã então o Blade nos dá esses poderes né nos dá essas possibilidades de de facilitar nossa vida quando tiver Escrevendo códigos tá bom ã Beleza então temos o nosso controlador explicado a nossa View explicada agora vamos entender o Model tá então esse trio é extremamente importante para que a gente possa seguir viagem a partir daqui Beleza então lá no meu
Welcome Controller que que eu vou fazer eu tenho o meu um mod o único modo que eu tenho aqui no sistema a por agora é o meu user Né então quando eu carrego ele user que é app user models eu posso ele tem métodos estáticos que que são métodos estáticos métodos que eu posso chamar sem a necessidade de instanciar um elemento então eu posso vir aqui e falar o seguinte eu quero abrir uma qu e nessa cor eu quero criar um novo registro E esse novo registro ele vai ter um nome e por que que
eu sei que ele tem um nome né porque o LV ele já me traz um Modelo por padrão onde que fica esse modelo Database migrations Create users dentro desse Create users que que eu tenho eu tenho a minha tabela meu banco de dados e qual que é a estrutura desse meu banco de dados né que é os users esse aqui é o nome da tabela users ele tem um ID esse ID é do tipo inteiro e é incremental eu tenho uma string do tipo nome e ela é obrigatória ter que ela não Tem null como
email verify eu tenho uma string do tipo e-mail Unique é um único e-mail dentro meu banco de dados Ah eu tenho Quando que o meu e-mail Foi verificado Qual que é a senha o remember to o time stamp time temp é um conjunto de quando ele foi criado e quando que ele foi atualizado que ele vai adicionar na tabela uma outra opção de como saber como é que é a minha estrutura de banco de dados é vir aqui no meu PHP Artisan eu vou dar um grap aqui e vou escrever Model né Ah e eu
tenho essa informação aqui ó Model show show information mod mostre-me informações do meu model no caso user Olha aqui que legal então aqui eu tenho que qual que é o nome do meu Model né Qual que é o meu o namespace por completo Qual que é o banco de dados que eu estou acessando ele que é o skite a tabela users Quais são os Atributos tá vendo Então ele é um ID do tipo inteiro incremental e único ele é um nome vaiar e ele tá disponível dentro do fillable que eu vou mostrar iso para vocês
já já eil o eil verifi password remember token aqui time stamps então ele sempre guarda toda vez que o registro fo criado e toda vez que o registro for atualizado ele atualiza o UPE se estivermos utilizando o Mod para fazer essa altera se a gente executar Direto o update do banco de dados ele não vai fazer tá porque isso aqui não fica nível de banco de dados fica a nível de de fica a nível de PHP tá bom beleza as relações temos uma relação de notificações eventos e observers então tudo relacionado a esse esse Model
nós podemos acessar aqui tá Então temos esse dentro de welc eu vou criar então um usuário name Rafael eu vou criar com o e-mail Rafaela.com eu vou colocar um password nele de Jeremias e é só eu vou vir aqui e vou dar um user e o laravel à vez a gente utilizar o v dump user o laravel ele tem o um dum mais mais bonito digamos assim não só aquela string mas ele deixa um formato mais legal então eu vou dar um DD então você pode utilizar dump Ah o dump seguido de humai para poder
matar o a Requisição ou você pode usar um DD que é dump and die tá beleza eu vou vir aqui no meu browser novamente e olha lá que legal eu criei o registro que ele não me deu erro nenhum né e eu tô fazendo e no retorno desse Create ele já me traz o registro que eu criei já no formato que eu poder acessar então aqui que que eu tenho eu tenho os meus atributos tá vendo Ah então o nome o e-mail a senha que já foi criptografado Tá isso é um parâmetro Dent do modo
que eu vou mostrar para vocês já já updated AD e created ad e o ID então ID número um e ah outras informações Então tá vendo eu posso ter Campos invisíveis para não mostrar o que que eu tenho de filme bou não o que que foi convertido então a senha ela é hash esses cas são conversões que eu posso adicionar dentro do meu modo e falar o seguinte Toda vez que você tiver criando algo ou pegando algo do banco você vai Utilizar esse conversor o laravel tem vários conversores dentro dele por exemplo a gente tá
falando do email verifi at que ele é do tipo date time se a gente só quiser trazer ele então aqui eu vou mudar um pouquinho eu vou colocar user find One eu vou comentar isso aqui não precisar criar de novo tá então eu tô buscando no banco de dados o registro número um não registro número um o Registro de id1 tá então aqui eu tenho id1 beleza funcionou eu vou vir aqui como ele é um objeto como é que eu acesso propriedades desse desse objeto através de flechas tá E essa flecha aqui deixa eu só
mudar uma coisa na minha configuração Font Font lature Deixa eu tirar esse cara aqui para você ver direitinho que é uma flecha tá vendo tem um traço e um sinal De maior Tá bom vou dar um um Reload ó lá e verif tá igual a nulo eu vou vir aqui e vou atualizar esse registro tem algumas maneiras da gente atualizar isso em formato de ã dessa maneira então vou colocar atualizei agora e d um save Beleza agora ou eu poderia ter feito assim user update aí em informato de arreia eu tenho que escrever e--mail verified
at ele recebe Então essas duas maneiras funcionam tá então estou Atualizando tá então vou tirar esse aqui vou trazer esse DD M verifire at Olha aqui que interessante eh no banco de dados ele é isso aqui né É É uma string normal mas por causa daquele cas que ele adicionou né aquele conversor de informação que ele adicionou no meu moddel e eu vou mostrar para vocês já já onde ele configura Isso ele já beleza ele é do tipo date time Então quando você pegar no banco converte para para Carbon que Carbon é O é uma
classe para poder tratar datas né que a gente utiliza dentro não é não é por causa do PHP isso né o Carbon ele é um pacote Extra que você pode adicionar então se você procurar na internet PHP Carbon ele é um uma extensão no PHP né que não tem nada a ver com laravel é simplesmente do PHP que você pode utilizar né então el mas é é o padrão pra gente trabalhar com date times no PHP tá então ele converte para a você tem um monte de funções para Poder trabalhar que ele te dá com
possibilidades né então a gente tá falando aqui esse Nal por exemplo é o método do PHP para trazer a data atual e ele é do tipo Carbon então Ó eu posso trazer Ah me traz só hora e assim tem tem tanta tantas possibilidades dentro desse Carbon que poderia ficar falando horas e horas só do Carbon só de todas as possibilidades dele é muito bom muito bom mesmo tá então ele já converte para isso então por exemplo posso aqui falar Já de for humans que é um método um método do carm fal me traz a diferença
no formato humano quando que Ele Foi verificado há um minuto atrás tá bom beleza se eu atualizar esse cara para update e-mail verified at Ah eu vou fazer subm ah 10 meses atrás tá vendo vou dar um 10 meses atrás aqui ah vamos atualizar por que que ele não atualizou ó ele não atualizou deveria Ter atualizado para 10 meses atrás ainda continua 2 minutos vamos lá no user já vou te falar o que que é o fillable então o fillable é uma uma proteção que o laravel dá pro model pra gente fazer atribuições de mess
assignment Eh Ou seja para você fazer atribuições em massa de de atributos Então o que eu te mostrei aqui que a gente tem as duas possibilidades né Então e-mail deixa eu copiar aqui para F mais fácil e-mail Verifi é igual não então quando a gente tá utilizando esse approach aqui quer dizer que a gente tá especificamente setando cada uma das propriedades e depois salvando quando a gente utiliza Essa maneira de criar ou essa maneira de atualizar que a gente tá passando um arrei a gente tá falando aqui a gente tá atualizando em massa né no
contexto aqui do Laro E para isso ele tem ele tem aquele filb para falar o seguinte Olha só deixa atualizar em massa esses campos tá E é uma proteção Extra de de segurança de dados para que você não faça cagada Imagine que você tá passando aqui o ID junto né ah V vão dizer que você tá atualizando aí você por alguma razão você vai lá e atualiza o ID né alguns bancos de dados se você não tem a proteção correta ele meu Você tá atualizando se deixa né então isso aqui Acontece mas aí você tem
dupla camada como o id não está especificado aqui ele não atualiza do mesmo jeito que ele não atualizou esse meu e-mail verif dessa maneira Tá mas eu vou comentar aqui se caso eu vier aqui e adicionar email Fire at voltar lá ele vai atualizar 10 meses atrás tá bom então isso aqui é uma coisa importante então Esso aqui é uma configuração do modo eu posso cada moda vai ter a sua configuração em particular Do mesmo jeito que eu posso eh esconder informações então toda vez que eu pegar do banco de dados eu não quero eu
quero esconder o password e o remember token então a não ser que eu queira mostrar de de fato ele vai deixar senão não e os nossos cases os nossos conversores né o meu e-mail verify at ele é do tipo date time e meu password ele é do tipo hash então com isso ah eu tenho alguma base legal pro pro Que a gente vai fazer então eu já tinha ensinei a base do laravel a base do PHP assim superficialmente tá mas mas que para você possa ter uma noção de como as coisas funcionam beleza ah e
o último elemento que a gente tem que fazer nessa primeira aula é a base do Live Wire tá para que a gente consiga nas próximas duas aulas desenvolver o nosso produto Tá então vamos lá o que que é vamos dar um Ahã eu vou tirar ah só quero mostrar Uma outra coisa antes da gente seguir pro Live Wire lembra aquele nosso out aqui no Jeremias no meu out você está autenticado Olha aqui que legal eu posso agora pegar o meu usuário e PR minha meu gerenciador de autenticação que é essa classe out e fala o
seguinte login e usem ID ou só login passando a minha variável user tá então esse meu Alt eu carreguei dentro de ilumin de iluminat suporte façade out então ele tá dentro desse Cara eu falar ó loga para mim com esse usuário Olha que interessante você está autenticado olha que massa ele já vem sistema de autenticação tudo dentro dele agora continuo autenticado se eu quiser agora dar um login Ó Desculpa um logout logout pronto não estou mais autenticado simples assim simples assim tá e o login né mesmo se eu trocar de página aqui ele vai saber
que eu estou Autenticado por qu ele trabalha através de cooks de autenticação se a gente for aqui dentro de networking ah perdão Storage o meu local ho aqui ele tem os cooks né falando do de tudo Onde tá o meu freelancer aqui ó freelancer Hours eu tenho meu Cook aqui dentro freelancer Hours sessão então ele controla tudo olha que beleza a gente não precisa se preocupar nessa parte simples assim se autenticar é verificar se o usuário tá vindo é correto e out login e out Logout tá bom bom Beleza quia te mostrar isso gente seguir
pro Live Wire tá vamos dar uma limpada aqui no nosso projeto ã acho que eu vou dar Vamos esse code aqui vamos pegar o que é Model vou dar um Roll back neste cara no jemias vou dar back também e aqui eu vou deixar esse aqui olha aqui a diferença eu não vou autenticar aqui beleza vou trazer dessa maneira Tá então agora a gente pode vir aqui né ou eu posso aqui só dar um só dar UMP só pra gente salvar o que a gente tem n teste Jeremias não encontrado vamos nosso PS Code Welcome
Controller ele tem que ir pro Welcome ao invés e mudar um lo Beleza então mudei para Welcome aqui agora beleza está Wel Live Wire então Live Wire laravel então ele é uma extensão do do Larv tá Ah e o que que esse cara faz ah ele transforma o seu app tá vendo ele é uma maneira poderosa e dinâmica para poder criar interfaces frontend sem a necessidade de você sair do PHP beleza ã então por exemplo ó Isso aqui foi escrito em livewire tá esse componente Zinho aqui então simplesmente colocando algumas Diretivas ah alguns atributos no
HTML você pode acessar a tua classe respectiva classe que ele sempre vem um combo tá ele vem uma classe e ele vê um HTML embutido ní eles se conversam eles conseguem se conversar então aquela aquele aquela viu ela e ela sabe os elementos os métodos que aquela classe existe elas se conversam tanto propriedades como métodos né então aqui ele tá falando o seguinte ó toda vez que Eu digitar e mudar esse módel search e de uma maneira live live quer dizer o quê Live quer dizer que toda vez que eu digitar ele já atualiza perdão
ele já atualiza aquele registro né E aí eu consigo fazer a pesquisa e aqui ele faz um for olha aqui ele faz um for dos usuários filtrados né Então a nossa Classe A classe do Live Wi ele vai ter o seguinte ele vai ter um um uma propriedade search que é esse cara aqui é literalmente esse cara tá que a gente Tá atualizando ele vai renderizar ã ele vai renderizar essa View search users passando com propriedade o users tá e ele vai aplicar o sech user search esse cara e isso aqui é Lar isso aqui
não tem nada eloquente não tem nada a ver com live em si então com essa com esse meu poderio aqui eu consigo ter dinamismos simplicidade de atualizar a página e eu tenho eu tenho uma visibilidade muito melhor então como é vamos instalar ele Aqui vamos instalá-lo então vou vir aqui installation vou copiar esse cara compose vou no meu terminal compos require Live Wire Live Wire vou instalar então ele já fez o lock na versão 354 Tá instalando a versão 354 vamos voltar enquant Tá instalando e menual including for assets ã vamos dar uma olhada aqui
p p p pá e é isso acho que é quase isso a gente vai fazer uma coisinha mais pera aí beleza Ele instalou vamos ver aqui dentro do meu PHP artisan o que que eu tenho de livewire ó livewire agora eu tenho attributes eu tenho copy delete form layout make move publish stubs and upgrade aí então livewire make eu consigo criar componentes Live Wi que é o que a gente vai criar mas primeiro eu vou fazer Esso aqui ó então PHP artisan Live Wire layout para criar o arquivo de layout Então dentro de components layouts
app. Blade eu tenho meu arquivo de layout Então eu tenho aqui resources views components layout app. Blade tá então eu tenho meu arquivo de template E olha que legal agora quando eu criar um novo PHP artisan Live make test o que que ele criou Ele criou um arquivo dentro de app livewire Test e ele criou um resources View a livewire test para ele poder para ele saber o que que ele tá fazendo e Fica sempre dentro de livewire test Então vamos lá teste.php eu vou fazer a mesma coisa que ele fez ali ó search ess
cara vai ser do tipo string eu vou colocar aqui ele vai renderizar users e aí eu vou carregar o meu modo user vou abrir uma query e vou fazer o seguinte Quando eu tiver um search eu vou fazer um filtro Where name Light search tá E aqui eu vou dar um get beleza dentro do meu componente Live Wire eu vou ter um input ele vai ser Wire Wire Model Live igual a search aqui eu vou dar um BR e aqui eu Vou ter uma qual que meu for each então for each users as user and
e eu vou fazer um li e eu vou fazer username tá bom isso aqui como é que eu carrego agora onde que eu coloco esse meu elemento tenho duas maneiras de fazer isso eu tenho eu tenho uma maneira eu vou colocar dentro de. Blade e aqui eu vou Deletar tudo e eu vou escrever o seguinte Olha eu quero carregar aquele meu layout vamos ver se isso aqui tá tudo bem layout layouts beleza layouts P app então isso aqui ó o x trç eu tô dizendo pro meu Blade component que eu tô querendo carregar tudo que
é um componente dentro de layouts e app então tô carregando isso aqui e o slot ele me traz a Possibilidade de colocar tudo aqui dentro tá Então vamos lá ah e eu vou carregar agora um componente livewire chamado teste ah propriedade users não encontrada Então vamos lá dentro de teste aqui é dessa maneira beleza ó lá Rafael então aqui é o meu componente Live Wire o meu componente Live Wire tá vendo beleza ó vou colocar aqui um H1 meu componente Tá que se eu tirar do meu Welcome Blade se eu arrancar esse cara daqui ele
para de aparecer e se eu colocar vários ele vai aparecer vários Então olha que legal um componente que você pode reutilizar na página tá Ah beleza então dentro do meu teste eu tenho essa pesquisa né então se eu digitar aqui agora Jeremias ele some se eu digitar Rafael ele acha porque só tem só né olha aqui que legal então tá vendo que a página não tá atualizando a página Não tá mexendo não eu tenho uma reatividade né que eu se eu vier no insect e procurar aqui no Network ele tá fazendo chamadas pro meu backend
e via via Jax né ele tá fazendo chamadas e ele tá renderizando e o retorno dele né a resposta ele é um Jon Mas ele tem o o HTML dele aqui dentro né ó tá vendo ele tem um bloco então ele vai pro backend usa o PHP como a gente tá utilizando Blade components e tudo mais ele tem que interpretar aquilo então ele Ele gera o HTML daquele resultado devolve pra página e o Live tem uma inteligência de simplesmente trocar só aquele bloco tá então se nós viermos aqui e criarmos vários vamos ver o que
acontece se eu digitar aqui em cima olha aqui tá vendo Então eu fiz a minha pesquisa ali em cima mesmo eu tendo o mesmo componente repetido há várias vezes ele sabe que eu tô falando aquele bloco e ele só atualiza aquele bloco então ele pega o HTML que foi gerado e Substitui mantendo o estado e tem toda a inteligência de manter o estado das coisas ali daquele próprio negócio né então aqui é o posso pesquisar Rafael Aqui é uma outra coisa aqui é uma outra coisa e ele mantém os mesmos estados tá então a gente
vai utilizar essa tecnologia para poder deixar o nosso a o o nosso projeto mais dinâmico e e simplesmente nos preocupando com PHP e Blade e segue o jogo O mvc mantém a mesma coisa tá bom ah beleza então Próxima aula O que que a gente vai fazer a gente vai fazer a base do nosso projeto Ah o que eu quero dizer a base do nosso projeto se nós voltarmos aqui no figma nós vamos criar o Model relacionado ao projeto nós vamos ah sear esse nosso projeto com essas informações e e nós vamos fazer o modo
das propostas e Nós já vamos fazer essa dinâmica de ah de criar né de mandar uma proposta para um um determinado projeto tá E aí na Última aula a gente vai fazer toda a amarração de que eu quer dizer com amarração a toda a parte de ah de backend de enviar e-mail de trabalhar com filas Ah e de deixar eh essas Ah todos os e-mails filas e e o controle disso acontecendo e também um scheduler para poder encerrar essa essa proposta no horário específico né então encerra em 1 hora encerra em 2 horas então a
partir do momento que chegou este momento a gente vai encerrar Então A gente vai trabalhar com scheduler a gente vai trabalhar com filas a gente vai trabalhar com fim e com e-mail também tá beleza então até a próxima aula