{"id":3573,"date":"2016-06-13T09:00:42","date_gmt":"2016-06-13T12:00:42","guid":{"rendered":"https:\/\/www.mxcursos.com\/blog\/?p=3573"},"modified":"2019-03-16T20:27:20","modified_gmt":"2019-03-16T23:27:20","slug":"criando-um-carrinho-de-compras-com-php-parte-1","status":"publish","type":"post","link":"https:\/\/www.mxcursos.com\/blog\/criando-um-carrinho-de-compras-com-php-parte-1\/","title":{"rendered":"Criando um carrinho de compras com PHP &#8211; Parte 1"},"content":{"rendered":"<div class=\"embed-container\"><iframe src=\"\/\/www.youtube.com\/embed\/YgHRBEYy6mM\" frameborder=\"0\" allowfullscreen><\/iframe><\/div>\n<p>Oi pessoal,<\/p>\n<p>Criei\u00a0uma s\u00e9rie de 3 videoaulas, ensinando a como criar um carrinho de compra utilizando PHP Orientado a Objetos. Iremos ver conceitos de MVC, utilizar interface, criar entidades e reposit\u00f3rios\u00a0e\u00a0utilizar inje\u00e7\u00e3o de depend\u00eancia.<\/p>\n<p>Nessa primeira parte, criaremos nossa estrutura em MVC, utilizaremos o namespace,\u00a0criaremos a inclus\u00e3o de nossas classes utilizando spl_autoload_register\u00a0e iremos\u00a0separar responsabilidades para um melhor aproveitamento do nosso projeto.<\/p>\n<p>Para um melhor aproveitamento da v\u00eddeo aula, iremos adicionar algumas informa\u00e7\u00f5es que foram utilizadas na aula.<\/p>\n<p>Apesar de n\u00e3o ser o foco da v\u00eddeo aula, utilizamos MVC (Model, View e Controller). Ele \u00e9 um padr\u00e3o de arquitetura de software, onde separa sua aplica\u00e7\u00e3o em camadas, onde o Model \u00e9 a regra de neg\u00f3cios e representa\u00e7\u00e3o dos dados, a View \u00e9 a sa\u00edda da informa\u00e7\u00e3o e intera\u00e7\u00e3o com usu\u00e1rio e o Controller \u00e9 que recebe a entrada\u00a0e\u00a0repassa as informa\u00e7\u00f5es chamando o Model ou a View.<\/p>\n<p>E com isso podemos ter separa\u00e7\u00f5es de responsabilidade e reutiliza\u00e7\u00e3o do c\u00f3digo.<\/p>\n<p>Para evitarmos trabalhar com inclus\u00e3o dos arquivos individuais, foi utilizado\u00a0com autoload da SPL, que \u00e9 <a href=\"http:\/\/php.net\/manual\/pt_BR\/function.spl-autoload-register.php\" target=\"_blank\" rel=\"noopener noreferrer\">spl_autoload_register<\/a>. Toda vez que vamos instanciar uma classe, \u00e9 passada para essa fun\u00e7\u00e3o e a informa\u00e7\u00e3o passada \u00e9 convertida em caminho at\u00e9 o arquivo, realizando assim essa inclus\u00e3o.<\/p>\n<p>Em todo nosso projeto foi adotado as namespace&#8217;s, que s\u00e3o formas\u00a0de agrupar itens. Utilizamos pastas para realizar a separa\u00e7\u00e3o das nossas classes de forma segmentada.\u00a0E utilizaremos os mesmos nomes em v\u00e1rios arquivos. Com isso, existia o\u00a0colis\u00e3o de nomes, ocasionando\u00a0conflitos.<\/p>\n<p>Antes da namespace, era utilizado\u00a0o\u00a0underline no nome das classes para separar as\u00a0pastas at\u00e9 chegar ao arquivo<\/p>\n<p>Veja o exemplo:<\/p>\n<pre class=\"lang:php decode:true\">&lt;?php \r\n\r\nclass App_Model_Product_ProductRepositoryPDO{\r\n\r\n}<\/pre>\n<p>Ao chamar o autoload, era trocado o underline pela barra e assim inclu\u00eddo com arquivo.<\/p>\n<p>Isso garantia classes com nomes \u00fanicos, evitando a colis\u00e3o. E com a utiliza\u00e7\u00e3o\u00a0do namespace, n\u00e3o precisaremos utilizar esse artificio. Na hora de chamar as classes pra trabalharmos, simplificaremos tamb\u00e9m, evitando assim esses nomes gigantes que eram criados.<\/p>\n<p>Exemplo utilizando Namespace:<\/p>\n<pre class=\"lang:php decode:true\">&lt;?php \r\n\r\nnamespace App\\Model\\Product;\r\n\r\nclass ProductRepositoryPDO{\r\n\r\n}<\/pre>\n<p>Arquivos do Projeto:<\/p>\n<p><a href=\"https:\/\/github.com\/davidchc\/videoula-criando-carrinho-de-comprar-php\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/davidchc\/videoula-criando-carrinho-de-comprar-php<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oi pessoal, Criei\u00a0uma s\u00e9rie de 3 videoaulas, ensinando a como criar um carrinho de compra utilizando PHP Orientado a Objetos. Iremos ver conceitos de MVC, utilizar interface, criar entidades e reposit\u00f3rios\u00a0e\u00a0utilizar inje\u00e7\u00e3o de depend\u00eancia. Nessa primeira parte, criaremos nossa estrutura em MVC, utilizaremos o namespace,\u00a0criaremos a inclus\u00e3o de nossas classes utilizando spl_autoload_register\u00a0e iremos\u00a0separar responsabilidades para [&hellip;]<\/p>\n","protected":false},"author":67,"featured_media":3611,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"video","meta":{"footnotes":""},"categories":[1178],"tags":[],"class_list":["post-3573","post","type-post","status-publish","format-video","has-post-thumbnail","hentry","category-programacao","post_format-post-format-video"],"_links":{"self":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/posts\/3573","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/users\/67"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/comments?post=3573"}],"version-history":[{"count":0,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/posts\/3573\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/media\/3611"}],"wp:attachment":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/media?parent=3573"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/categories?post=3573"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/tags?post=3573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}