ebook img

PHP e Laravel Crie aplicações web como um verdadeiro artesão PDF

224 Pages·2015·2.59 MB·Portuguese
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview PHP e Laravel Crie aplicações web como um verdadeiro artesão

CasadoCódigo “Atudoquetenhodemaisimportantenessavida,minhaesposaJordanae nossaprimeirafilha,Clara.” –RodrigoTurini i CasadoCódigo Agradecimentos Por mais que eu queira e tente muito, nenhum conjunto de palavras será o suficienteparaexpressarmeueternoagradecimentoàminhaesposaJordana enossafamília,queagoraestámaiorcomachegadadapequenaClara. GostariatambémdeagradeceraoDanielTurini,quesempreinfluenciou emmeucrescimentopessoaleprofissional. Foielequemdeumeuprimeiro computadoremeencaminhouaomundodaCiênciadacomputaçãoerecen- tementeaosdiversosprojetosemPHPquedesenvolvemosjuntos. Agradeço também às equipes da Caelum, Alura e Casa do Código, que sãoempresassensacionaisconstituídasporprofissionaisextraordinários.Em especialameusamigosPauloeGuilhermeSilveira,VictorHarada,Maurício AnicheeLuizCorteReal. iii CasadoCódigo Prefácio ApesardeserintimamenteligadoaoJava,umaoutralinguagemdeprograma- ção,hápoucomaisdeumanorecebiodesafiodemanteraaplicaçãointerna deumaempresaamericana,totalmenteescritaemPHP.Nocomeço,otraba- lhofoibemmaisdifícildoqueeuesperava, jáquesetratavadeumprojeto legado,nemumpoucoorientadoaobjetosemuitíssimocomplicadodeman- ter. Depois de um tempo, vimos que a solução mais simples para esse caso seriareescrevertodooprojeto,utilizandoboaspráticas,testesautomatizados easpossibilidadesmaisatuaisdalinguagem.ÉaíqueentraoLaravel. Eujáhaviatidoalgumcontatocomesseframeworkquandoestavatraba- lhandonoconteúdotécnicodocursodePHPdaCaelum,masaoestudá-loa fundoenquantoviabilizavaasopçõesatuais,tiveasensaçãodequeseriauma excelenteescolha.Hoje,eutenhocerteza. OobjetivodesselivroserámostrarporqueoLaraveléaapostadomer- cadoatualeminhaprimeiraopçãodeframeworkMVCemPHP.Criarapli- caçõeselegantesempoucotemponuncafoitãofácil. v CasadoCódigo Sumário Sumário 1 Introdução 1 1.1 Oprojetoeastecnologias . . . . . . . . . . . . . . . . . . . . . 1 1.2 Oqueveremosduranteolivro . . . . . . . . . . . . . . . . . . 3 1.3 DownloaddoLaravel . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Acesseocódigodesselivro . . . . . . . . . . . . . . . . . . . . 5 1.5 Aproveitandoaomáximooconteúdo . . . . . . . . . . . . . . 5 1.6 Tirandosuasdúvidas . . . . . . . . . . . . . . . . . . . . . . . 5 2 NovoprojetocomLaravel 7 2.1 Comocriarcincotelasdeumaaplicaçãoweb? . . . . . . . . . 7 2.2 Framework,praquetequero? . . . . . . . . . . . . . . . . . . 7 2.3 Novoprojeto:Umaappdecontroledeestoque . . . . . . . . 9 2.4 Entendendoaestruturadepastas . . . . . . . . . . . . . . . . 12 2.5 AlterandoonamespacepadrãocomArtisan . . . . . . . . . . 13 2.6 Criandonossaprimeiralógica . . . . . . . . . . . . . . . . . . 14 2.7 ConflitoentrerotasdoLaravel . . . . . . . . . . . . . . . . . . 17 2.8 Antesdecontinuar. . . . . . . . . . . . . . . . . . . . . . . . . 18 3 MVCeconexãocombancodedados 19 3.1 Model-View-Controller . . . . . . . . . . . . . . . . . . . . . . 19 3.2 ColocandoMVCemprática . . . . . . . . . . . . . . . . . . . 21 3.3 Trabalhandocombancodedados . . . . . . . . . . . . . . . . 23 3.4 ConfiguraçãoeconexãocomMySQL . . . . . . . . . . . . . . 27 3.5 Parasabermais:Environment . . . . . . . . . . . . . . . . . . 30 3.6 Aondechegamoseparaondequeremosir . . . . . . . . . . . 32 vii Sumário CasadoCódigo 4 Camadademodelo,migrationseseeds 33 4.1 OmodeloProduto . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2 Trabalhandocommigrations. . . . . . . . . . . . . . . . . . . 35 4.3 Apagandoatabelaprodutos . . . . . . . . . . . . . . . . . . . 38 4.4 Executandomigrações . . . . . . . . . . . . . . . . . . . . . . 38 4.5 Inserindodadosnatabelaprodutos . . . . . . . . . . . . . . . 39 5 TrabalhandocomaView 45 5.1 Cadacoisaemseulugar:camadaView . . . . . . . . . . . . . 46 5.2 Consultandoosarquivosdelogdoframework . . . . . . . . 49 5.3 Incluindoparâmetrosnaview . . . . . . . . . . . . . . . . . . 52 5.4 Algunsdetalhesecuriosidades. . . . . . . . . . . . . . . . . . 53 5.5 Melhorandoaaparênciadanossalistagem . . . . . . . . . . . 55 5.6 Aondechegamoseparaondequeremosir . . . . . . . . . . . 60 6 ParâmetrosdarequesteURL 61 6.1 Exibindodetalhesdoproduto . . . . . . . . . . . . . . . . . . 61 6.2 Enviandoparâmetrosnarequest. . . . . . . . . . . . . . . . . 67 6.3 Recuperandoparâmetrosdarequest . . . . . . . . . . . . . . 68 6.4 ConhecendoumpoucomaisdaRequest . . . . . . . . . . . . 71 6.5 URLsmaissemânticas . . . . . . . . . . . . . . . . . . . . . . 72 6.6 RecuperandoparâmetrosdaURL . . . . . . . . . . . . . . . . 73 6.7 Algunscuidadosnecessários . . . . . . . . . . . . . . . . . . . 76 7 Viewsmaisflexíveisepoderosas 79 7.1 Blade,atemplateenginedoLaravel . . . . . . . . . . . . . . . 81 7.2 Variáveiscomblade . . . . . . . . . . . . . . . . . . . . . . . . 87 7.3 MigrandoalistagemparaBlade . . . . . . . . . . . . . . . . . 89 7.4 Loopingsemaisloopings . . . . . . . . . . . . . . . . . . . . . 90 7.5 Adicionandocondiçõesnaview . . . . . . . . . . . . . . . . . 92 7.6 Marcandoprodutosemfaltanoestoque . . . . . . . . . . . . 95 7.7 Organizandonossasviews . . . . . . . . . . . . . . . . . . . . 99 7.8 Estilizandootemplateprincipal . . . . . . . . . . . . . . . . . 103 viii CasadoCódigo Sumário 8 RequestemétodosHTTP 109 8.1 Criandoformuláriodenovosprodutos . . . . . . . . . . . . . 109 8.2 Criandoométodoadiciona . . . . . . . . . . . . . . . . . . . 113 8.3 InserindoosprodutosnoBD. . . . . . . . . . . . . . . . . . . 118 8.4 Retornandoumaviewdeconfirmação . . . . . . . . . . . . . 118 8.5 UtilizandoosmétodosdoHTTP . . . . . . . . . . . . . . . . 123 8.6 MaismétodosHTTPequandoutilizá-los . . . . . . . . . . . 128 9 Osdiferentestiposderesposta 129 9.1 Redirecionandoparaoutraslógicas . . . . . . . . . . . . . . . 129 9.2 Maseamensagemdeconfirmação?. . . . . . . . . . . . . . . 132 9.3 Recuperandovaloresdarequisiçãoanterior . . . . . . . . . . 134 9.4 Escolhendoquaisvaloresmanter . . . . . . . . . . . . . . . . 136 9.5 Outrostiposderedirect . . . . . . . . . . . . . . . . . . . . . . 137 9.6 Parasabermais:rotasnomeadas. . . . . . . . . . . . . . . . . 138 9.7 Outrostiposderesposta . . . . . . . . . . . . . . . . . . . . . 140 10 EloquentORM 143 10.1 Conheçaasolução:ORM . . . . . . . . . . . . . . . . . . . . . 144 10.2 TudomaissimplescomEloquent . . . . . . . . . . . . . . . . 145 10.3 BuscandopeloIDcomEloquent. . . . . . . . . . . . . . . . . 147 10.4 Migrandoainserçãodeprodutos . . . . . . . . . . . . . . . . 149 10.5 Funçãoderemoverprodutos . . . . . . . . . . . . . . . . . . . 153 10.6 CódigofinaldoProdutoController . . . . . . . . . . . . . . . 155 11 Validandoosdadosdeentrada 159 11.1 ValidaçãocomLaravel . . . . . . . . . . . . . . . . . . . . . . 161 11.2 ValidandocomFormRequests . . . . . . . . . . . . . . . . . . 165 11.3 UsandoFormRequestaoadicionar . . . . . . . . . . . . . . . 169 11.4 Exibindoerrorsdevalidação . . . . . . . . . . . . . . . . . . . 171 11.5 Customizandoasmensagens . . . . . . . . . . . . . . . . . . . 176 11.6 Customizandomensagensdeumcampoespecífico . . . . . . 178 11.7 Boaprática:experiênciadeuso . . . . . . . . . . . . . . . . . 180 ix

Description:
Está começando com frameworks PHP? Então, que tal criar sites e aplicações web, de forma extremamente produtiva, com código bem escrito, de fácil manutenção e organizado? Sim, isso é possível com o Laravel 5.1. Nesse livro, Rodrigo Turini mostra os principais recursos do Laravel 5.1, um i
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.