{"id":1150,"date":"2016-07-19T18:13:06","date_gmt":"2016-07-19T21:13:06","guid":{"rendered":"http:\/\/2016.belohorizonte.wordcamp.org\/?p=1150"},"modified":"2016-07-19T18:13:06","modified_gmt":"2016-07-19T21:13:06","slug":"junior-grossi-wordpress-laravel","status":"publish","type":"post","link":"https:\/\/belohorizonte.wordcamp.org\/2016\/junior-grossi-wordpress-laravel\/","title":{"rendered":"Junior Grossi: WordPress + Laravel"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/2016.belohorizonte.wordcamp.org\/files\/2016\/07\/palestrante-junior-grossi.jpg\" alt=\"palestrante-junior-grossi\" width=\"820\" height=\"346\" class=\"alignnone size-full wp-image-1151\" srcset=\"https:\/\/belohorizonte.wordcamp.org\/2016\/files\/2016\/07\/palestrante-junior-grossi.jpg 820w, https:\/\/belohorizonte.wordcamp.org\/2016\/files\/2016\/07\/palestrante-junior-grossi-300x127.jpg 300w, https:\/\/belohorizonte.wordcamp.org\/2016\/files\/2016\/07\/palestrante-junior-grossi-768x324.jpg 768w, https:\/\/belohorizonte.wordcamp.org\/2016\/files\/2016\/07\/palestrante-junior-grossi-500x211.jpg 500w, https:\/\/belohorizonte.wordcamp.org\/2016\/files\/2016\/07\/palestrante-junior-grossi-624x263.jpg 624w\" sizes=\"auto, (max-width: 820px) 100vw, 820px\" \/><\/p>\n<p><strong>1. De onde surgiu a id\u00e9ia de juntar o WordPress com o Laravel?<\/strong><br \/>\nFui dono de uma ag\u00eancia de publicidade durante nove anos e t\u00ednhamos clientes de todo tipo, porte, etc. Um desses clientes, em 2013, tinha um portal todo desenvolvido em WordPress, mas suas necessidades eram muito customizadas, com muitas pessoas envolvidas no projeto, inclusive jornalistas de fora do Brasil. Assim, em virtude de toda a base do projeto j\u00e1 estar criada, resolvi criar uma nova camada utilizando algum framework MVC, de maneira a separar melhor as fun\u00e7\u00f5es de cada pessoa envolvida, por\u00e9m, utilizando tudo que j\u00e1 estava pronto no back-end, que no caso era em WordPress. Assim, escolhemos utilizar o <a href=\"https:\/\/laravel.com\/\" target=\"_blank\">Laravel<\/a> para o front-end, mas mantendo o WordPress como gerenciador de conte\u00fado do portal.<\/p>\n<p><strong>2. Quais os benef\u00edcios dessa integra\u00e7\u00e3o?<\/strong><br \/>\nExistem casos e casos. A utiliza\u00e7\u00e3o do <a href=\"https:\/\/github.com\/jgrossi\/corcel\" target=\"_blank\">Corcel<\/a> consiste na instala\u00e7\u00e3o de um pacote via Composer. Eu, particularmente, vejo a utiliza\u00e7\u00e3o do Corcel em dois principais casos: o primeiro seria para interligar um blog em alguma aplica\u00e7\u00e3o j\u00e1 existente, de maneira que utilizaria o WordPress para gerenciar este blog separadamente da aplica\u00e7\u00e3o. A aplica\u00e7\u00e3o somente iria consultar os dados vindos do WP. O segundo caso seria utilizar literalmente o WordPress como back-end app e qualquer outro framework PHP no front-end. Assim voc\u00ea pode ter uma estrutura bem mais customizada, utilizando de MVC e demais padr\u00f5es de projeto, sem deixar de lado o WordPress, que trabalharia como o fomentador de conte\u00fado por tr\u00e1s. J\u00e1 tivemos casos de sucesso de integra\u00e7\u00e3o do Corcel com <a href=\"http:\/\/silex.sensiolabs.org\/\" target=\"_blank\">Silex<\/a>, <a href=\"http:\/\/www.slimframework.com\/\" target=\"_blank\">Slim<\/a>, <a href=\"http:\/\/cakephp.org\/\" target=\"_blank\">CakePHP<\/a> e principalmente Laravel, como foi feito no portal alem\u00e3o <a href=\"https:\/\/mitvergnuegen.com\/\" target=\"_blank\">https:\/\/mitvergnuegen.com\/<\/a>. A grande vantagem do Corcel \u00e9 que voc\u00ea tem tudo separado, podendo ter os models da sua aplica\u00e7\u00e3o, que consultam o banco de dados dela, e os models do Corcel, que consultam o banco de dados do WordPress, tudo junto, mas separado rs.<\/p>\n<p><strong>3. Em quais tipos de aplica\u00e7\u00f5es o Corcel pode ser usado?<\/strong><br \/>\nO Corcel pode ser usado em qualquer aplica\u00e7\u00e3o PHP (antiga ou nova). O Corcel \u00e9 um pacote Composer, ent\u00e3o a \u00fanica coisa que voc\u00ea precisa \u00e9 ter uma integra\u00e7\u00e3o com ele, o que se resume em incluir o arquivo &#8220;vendor\/autoload.php&#8221;. Voc\u00ea pode ter qualquer aplica\u00e7\u00e3o, desde Slim, Silex, PHP puro, <a href=\"https:\/\/framework.zend.com\/\" target=\"_blank\">Zend Framework<\/a>, <a href=\"https:\/\/symfony.com\/\" target=\"_blank\">Symfony<\/a>, etc, que basta incluir o pacote do Corcel e voc\u00ea j\u00e1 consegue utilizar todos os modelos customizados, como <code>Page::slug('about')-&gt;title<\/code> para pegar o t\u00edtulo da p\u00e1gina cujo slug \u00e9 \u201cabout\u201d, por exemplo.<\/p>\n<p><strong>4. O Corcel \u00e9 um projeto concluso ou voc\u00ea est\u00e1 trabalhando em novas features para ele?<\/strong><br \/>\nO Corcel come\u00e7ou bem pequeno, em 2013, mas atualmente j\u00e1 possui todo o banco de dados do WordPress mapeado em forma de models e classes, inclusive com relacionamentos, como <code>Post::find(1)-&gt;author-&gt;name<\/code>. Temos desenvolvedores de nove pa\u00edses ajudando no projeto. Nosso esfor\u00e7o hoje \u00e9 criar integra\u00e7\u00f5es no front-end para conciliar com o padr\u00e3o do WordPress no back-end, como, por exemplo, autentica\u00e7\u00e3o. Atualmente voc\u00ea consegue se autenticar no Painel do WordPress usando a classe Auth do Laravel. Ainda temos v\u00e1rias novas features em andamento, como integra\u00e7\u00e3o com plugins de SEO e Tradu\u00e7\u00e3o, por exemplo. Temos muito trabalho pela frente ainda, e toda ajuda \u00e9 sempre bem vinda.<\/p>\n<p>A mensagem que gostaria de deixar com esta palestra \u00e9 principalmente sobre a import\u00e2ncia de criar e\/ou contribuir com projetos open source. \u00c9 cada vez maior a quantidade de empresas que analisam este ponto a fundo, sendo inclusive fator de decis\u00e3o na contrata\u00e7\u00e3o de um novo desenvolvedor. Contribuir com projetos open source \u00e9 muito bom, faz bem pro curr\u00edculo e principalmente pro aprendizado. Existem projetos muito bacanas que ajudam a vida de muita gente, criado por pessoas de dentro do seu pa\u00eds e at\u00e9 mesmo de sua cidade. Contribua voc\u00ea tamb\u00e9m.<\/p>\n<p><strong><a href=\"https:\/\/2016.belohorizonte.wordcamp.org\/speaker\/junior-grossi\/\" target=\"_blank\">Junior Grossi<\/a> \u00e9 um dos palestrantes do WordCamp BH 2016. <\/strong><\/p>\n<p><strong>Ainda n\u00e3o fez sua inscri\u00e7\u00e3o? <a href=\"http:\/\/2016.belohorizonte.wordcamp.org\/ingressos\/\" target=\"_blank\">Clique aqui<\/a> e se inscreva.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. De onde surgiu a id\u00e9ia de juntar o WordPress com o Laravel? Fui dono de uma ag\u00eancia de publicidade durante nove anos e t\u00ednhamos clientes de todo tipo, porte, etc. Um desses clientes, em 2013, tinha um portal todo desenvolvido em WordPress, mas suas necessidades eram muito customizadas, com muitas pessoas envolvidas no projeto, [&hellip;]<\/p>\n","protected":false},"author":13192281,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1150","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7v89d-iy","_links":{"self":[{"href":"https:\/\/belohorizonte.wordcamp.org\/2016\/wp-json\/wp\/v2\/posts\/1150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/belohorizonte.wordcamp.org\/2016\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/belohorizonte.wordcamp.org\/2016\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/belohorizonte.wordcamp.org\/2016\/wp-json\/wp\/v2\/users\/13192281"}],"replies":[{"embeddable":true,"href":"https:\/\/belohorizonte.wordcamp.org\/2016\/wp-json\/wp\/v2\/comments?post=1150"}],"version-history":[{"count":1,"href":"https:\/\/belohorizonte.wordcamp.org\/2016\/wp-json\/wp\/v2\/posts\/1150\/revisions"}],"predecessor-version":[{"id":1152,"href":"https:\/\/belohorizonte.wordcamp.org\/2016\/wp-json\/wp\/v2\/posts\/1150\/revisions\/1152"}],"wp:attachment":[{"href":"https:\/\/belohorizonte.wordcamp.org\/2016\/wp-json\/wp\/v2\/media?parent=1150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/belohorizonte.wordcamp.org\/2016\/wp-json\/wp\/v2\/categories?post=1150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/belohorizonte.wordcamp.org\/2016\/wp-json\/wp\/v2\/tags?post=1150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}