{"id":112,"date":"2025-09-25T13:35:30","date_gmt":"2025-09-25T16:35:30","guid":{"rendered":"https:\/\/diegoelias.dev\/pt\/?p=112"},"modified":"2025-09-30T12:35:19","modified_gmt":"2025-09-30T15:35:19","slug":"convencoes-e-estilos-de-programacao-em-php","status":"publish","type":"post","link":"https:\/\/diegoelias.dev\/pt\/blog\/php\/convencoes-e-estilos-de-programacao-em-php\/","title":{"rendered":"Conven\u00e7\u00f5es e estilos de programa\u00e7\u00e3o em PHP"},"content":{"rendered":"<p><strong>Vari\u00e1veis<\/strong><\/p>\n<p>camelCase para vari\u00e1veis normais e par\u00e2metros de fun\u00e7\u00f5es\/m\u00e9todos:<\/p>\n<pre><code>$id\r\n$name\r\n$usuarios\r\n$usuario\r\n$data<\/code><\/pre>\n<p>Arrays sempre com array():<\/p>\n<pre><code>$usuarios = array();<\/code><\/pre>\n<p><strong>Fun\u00e7\u00f5es e m\u00e9todos<\/strong><\/p>\n<p>Nomes em camelCase:<\/p>\n<pre><code>function getUsers(): array { ... }\r\npublic function createUser(array $data): array { ... }<\/code><\/pre>\n<p>M\u00e9todos de classes seguem a mesma conven\u00e7\u00e3o.<br \/>\nFun\u00e7\u00f5es e m\u00e9todos curtos e com responsabilidade \u00fanica.<\/p>\n<p><strong>Classes<\/strong><\/p>\n<p>Nomes em PascalCase:<\/p>\n<pre><code>class UserService { ... }\r\nclass UserDAO { ... }<\/code><\/pre>\n<p>Propriedades de uma classe em camelCase:<\/p>\n<pre><code>private UserDAO $dao;<\/code><\/pre>\n<p><strong>Controle de fluxo<\/strong><\/p>\n<p>Chaves na mesma linha da declara\u00e7\u00e3o (estilo C-like):<\/p>\n<pre><code>if ($id !== 0) {\r\n}<\/code><\/pre>\n<p>Condicionais: primeiro o caso positivo, depois o falso:<\/p>\n<pre><code>if ($id !== 0) {\r\n    echo json_encode(getUserById($id));\r\n} else {\r\n    echo json_encode(getUsers());\r\n}<\/code><\/pre>\n<p>Compara\u00e7\u00f5es estritas === e !== em condicionais relevantes.<\/p>\n<p><strong>Casting<\/strong><\/p>\n<p>Somente quando necess\u00e1rio, principalmente para entradas externas ou retornos:<\/p>\n<pre><code>$id = (int) $_GET[\"id\"];\r\nreturn array(\"id\" =&gt; (int)$id, \"name\" =&gt; $name);<\/code><\/pre>\n<p><strong>Estilo geral<\/strong><\/p>\n<p>Sintaxe cl\u00e1ssica e expl\u00edcita, sem atalhos nem abrevia\u00e7\u00f5es (?:, ??).<br \/>\nIndenta\u00e7\u00e3o e chaves consistentes, estilo C-like.<br \/>\nVari\u00e1veis descritivas e fun\u00e7\u00f5es\/m\u00e9todos de responsabilidade \u00fanica.<br \/>\nUso estrito de type hints em par\u00e2metros e declara\u00e7\u00f5es de retorno.<br \/>\nRetornos sempre de um \u00fanico tipo, sem ambiguidade (exemplo: sempre array, nunca array|false|null).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vari\u00e1veis camelCase para vari\u00e1veis normais e par\u00e2metros de fun\u00e7\u00f5es\/m\u00e9todos: $id $name $usuarios $usuario $data Arrays sempre com array(): $usuarios = array(); Fun\u00e7\u00f5es e m\u00e9todos Nomes em camelCase: function getUsers(): array { &#8230; } public function createUser(array $data): array { &#8230; } M\u00e9todos de classes seguem a mesma conven\u00e7\u00e3o. Fun\u00e7\u00f5es e m\u00e9todos curtos e com responsabilidade [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-112","post","type-post","status-publish","format-standard","hentry","category-php"],"_links":{"self":[{"href":"https:\/\/diegoelias.dev\/pt\/wp-json\/wp\/v2\/posts\/112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/diegoelias.dev\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/diegoelias.dev\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/diegoelias.dev\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/diegoelias.dev\/pt\/wp-json\/wp\/v2\/comments?post=112"}],"version-history":[{"count":7,"href":"https:\/\/diegoelias.dev\/pt\/wp-json\/wp\/v2\/posts\/112\/revisions"}],"predecessor-version":[{"id":126,"href":"https:\/\/diegoelias.dev\/pt\/wp-json\/wp\/v2\/posts\/112\/revisions\/126"}],"wp:attachment":[{"href":"https:\/\/diegoelias.dev\/pt\/wp-json\/wp\/v2\/media?parent=112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/diegoelias.dev\/pt\/wp-json\/wp\/v2\/categories?post=112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/diegoelias.dev\/pt\/wp-json\/wp\/v2\/tags?post=112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}