{"id":231507,"date":"2022-12-22T09:53:00","date_gmt":"2022-12-22T06:53:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231507"},"modified":"2022-12-07T10:31:38","modified_gmt":"2022-12-07T07:31:38","slug":"nao-polua-a-tabela-de-opcoes-do-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/nao-polua-a-tabela-de-opcoes-do-wordpress\/","title":{"rendered":"N\u00e3o polua a tabela de op\u00e7\u00f5es do WordPress"},"content":{"rendered":"\n<p>Eu sou um f\u00e3 de ciclos de lan\u00e7amento curtos. Dependendo do projeto, a dura\u00e7\u00e3o do ciclo varia, mas para muitos dos tipos de projetos em que trabalho, pretendo ter ciclos de lan\u00e7amento de duas semanas.<\/p>\n<p>Al\u00e9m disso, h\u00e1 momentos em que estou trabalhando em um projeto para algu\u00e9m em que as vari\u00e1veis \u200b\u200bambientais s\u00e3o necess\u00e1rias para que o c\u00f3digo saiba se est\u00e1 sendo executado em desenvolvimento, prepara\u00e7\u00e3o ou produ\u00e7\u00e3o.<\/p>\n<p>E isso pode ser alcan\u00e7ado de uma maneira diferente, dependendo das necessidades do projeto. \u00c0s vezes, um arquivo de configura\u00e7\u00e3o funcionar\u00e1, \u00e0s vezes as vari\u00e1veis \u200b\u200bde string de consulta podem funcionar e outras vezes acho razo\u00e1vel armazenar uma configura\u00e7\u00e3o no banco de dados.<\/p>\n<p>Mas, no que diz respeito ao WordPress, acho que abreviamos melhores decis\u00f5es de design e lan\u00e7amos informa\u00e7\u00f5es no banco de dados, especificamente na tabela de op\u00e7\u00f5es, quando as alternativas podem ser mais adequadas.<\/p>\n<h2>A tabela de op\u00e7\u00f5es do WordPress<\/h2>\n<p>Quero ser claro: n\u00e3o acho que a tabela de op\u00e7\u00f5es deva servir como lixeira para configura\u00e7\u00f5es quando voc\u00ea n\u00e3o tem mais onde colocar informa\u00e7\u00f5es. E essa \u00e9 a ess\u00eancia de todo este post.<\/p>\n<p>Em vez disso, voc\u00ea pode usar:<\/p>\n<ul>\n<li>um arquivo de configura\u00e7\u00e3o,<\/li>\n<li>dados da sess\u00e3o (quando apropriado),<\/li>\n<li>uma tabela de banco de dados personalizada,<\/li>\n<li>ou alguma outra coisa.<\/li>\n<\/ul>\n<p>Ent\u00e3o, por que vemos isso acontecendo com tanta frequ\u00eancia? N\u00e3o \u00e9 que n\u00e3o haja momentos em que fa\u00e7a sentido us\u00e1-lo. S\u00f3 acho que abusamos. Mas h\u00e1 raz\u00f5es para isso.<\/p>\n<p><a href=\"https:\/\/codex.wordpress.org\/Option_Reference\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">O WordPress Codex<\/a> define op\u00e7\u00f5es como esta:<\/p>\n<blockquote>\n<p><strong>Op\u00e7\u00f5es<\/strong> s\u00e3o peda\u00e7os de dados que o WordPress usa para armazenar v\u00e1rias prefer\u00eancias e configura\u00e7\u00f5es.<\/p>\n<\/blockquote>\n<p>Com uma defini\u00e7\u00e3o como essa, \u00e9 f\u00e1cil ver por que tantos a usar\u00e3o como um lugar para guardar qualquer coisa que n\u00e3o cabe em nenhum outro lugar.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160574-61e70cd8a4ea4.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-160574-61e70cd8a4ea4.png\" alt=\"N\u00e3o polua a tabela de op\u00e7\u00f5es do WordPress\" ><\/a><\/p>\n<p>Em vez disso, acho importante fazer a pergunta:<\/p>\n<blockquote>\n<p>Para que tipo de armazenamento [esses dados] s\u00e3o mais relevantes?<\/p>\n<\/blockquote>\n<p>Ou seja, se est\u00e1 relacionado a postagens, por que n\u00e3o armazen\u00e1-lo na meta tabela de postagens? O mesmo para metadados de termos ou coment\u00e1rios ou qualquer outra coisa.<\/p>\n<p>O ponto \u00e9 este:<\/p>\n<p>Encontre o local mais l\u00f3gico para armazenar os dados e coloque-os l\u00e1.<\/p>\n<p>Em outras palavras, n\u00e3o jogue dados na tabela de op\u00e7\u00f5es do WordPress porque n\u00e3o cabe em nenhum outro lugar. Isso o polui. Em vez disso, encontre \u2013 ou crie \u2013 o lugar mais l\u00f3gico para isso. Isso provavelmente \u00e9 evid\u00eancia de um cheiro de c\u00f3digo e seria um bom motivo para reavaliar a arquitetura do seu c\u00f3digo e como as informa\u00e7\u00f5es est\u00e3o sendo representadas.<\/p>\n<p>Mas o que isso pode parecer? Ou seja, como pegar\u00edamos um determinado peda\u00e7o de c\u00f3digo e mudar\u00edamos como ele \u00e9 representado no banco de dados.<\/p>\n<p>Infelizmente, \u00e9 dif\u00edcil fornecer uma solu\u00e7\u00e3o prescritiva para essa quest\u00e3o sempre que existem tantas varia\u00e7\u00f5es da implementa\u00e7\u00e3o de um problema. Ent\u00e3o, talvez uma diretriz simples esteja em ordem:<\/p>\n<p>Se os dados estiverem relacionados aos tipos de dados (ou tabelas) pr\u00e9-existentes, use-os; caso contr\u00e1rio, considere um arquivo de configura\u00e7\u00e3o ou uma tabela de banco de dados personalizada que mapeie para seu trabalho.<\/p>\n<p>Tenho certeza de que existem outros fatores orientadores, mas este \u00e9 um lugar melhor para come\u00e7ar do que simplesmente poluir a tabela de op\u00e7\u00f5es do WordPress.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>N\u00e3o jogue dados na tabela de op\u00e7\u00f5es do WordPress porque n\u00e3o cabe em nenhum outro lugar. Isso o polui. Em vez disso, encontre \u2013 ou crie \u2013 o lugar mais l\u00f3gico para isso.<\/p>\n","protected":false},"author":1,"featured_media":235679,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[722,867],"tags":[1170],"class_list":["post-231507","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvedor","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=231507"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231507\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/235679"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=231507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=231507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=231507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}