PHP

Padrões de desenvolvimento em PHP

PHP-FIG

A linguagem de programação PHP permite que os desenvolvedores escrevam códigos de várias maneiras, naturalmente a falta de padronização no desenvolvimento pode dificultar o entendimento por parte da equipe, principalmente se o projeto é grande.

Então, é muito importância que seja adotado um padrão de código, dessa forma podemos melhorar e agilizar o processo de produção de software, inclusive o ingressar de novos desenvolvedores ao time. Em outras palavras, recomenda-se a utilização das especificações PSR’s como padrão de desenvolvimento, as mesmas foram criadas pelos desenvolvedores da comunidade PHP-FIG (Framework Interoperability Group).

Abaixo, temos os links das PSR’s utilizadas para padronização do código são:

Visão Geral

Portanto, para garantir um alto nível de interoperabilidade técnica entre códigos PHP compartilhado, vamos analisar os elementos de codificação padrão.

Dessa forma, as palavras-chave “DEVE”, “NÃO DEVE”, “NECESSÁRIO”, “DEVERIA”, “NÃO DEVERIA”, “RECOMENDADO”, “OPCIONAL”, são para ser interpretadas como descrito no RFC 2119.

  • Os nomes das variáveis, DEVE ser declarado no formato camelCase;
  • Os nomes de classes, DEVE ser declarado no formato StudlyCaps;
  • As constantes, DEVE ser declarado em maiúsculo com os separadores de sublinhado;
  • Os nomes dos métodos, DEVE ser declarado no formato camelCase;
  • O código DEVE usar 4 espaços para indentação. Mas caso deseje utilizar o TAB, o mesmo deve ser configurado com a quantidade de espaços corretos, no caso 4 espaços. Graças aos bons editores que temos, tais como Sublime, PHPStorm, Visual Studio Code, etc., podemos configurar facilmente;
  • NÃO DEVE haver um limite rígido no comprimento da linha. Porém, cada linha DEVERIA ter 80 caracteres ou menos, ou o limite aceitável DEVE ser de 120 caracteres;
  • DEVE haver uma linha em branco após a declaração do namespace e também após o bloco de declaração do use;
  • A abertura das chaves para as classes DEVE ir na próxima linha, e o fechamento das chaves DEVE ir na próxima linha após o corpo;
  • A visibilidade DEVE ser declarada em todas as propriedades e métodos. abstracte e finalDEVE ser declarado antes da visibilidade. staticDEVE ser declarado após a visibilidade.
  • Palavras-chave da estrutura de controle DEVE ter um espaço depois delas, chamadas de método e função NÃO DEVE.
  • Chaves de abertura para estruturas de controle DEVE ir na mesma linha, e o fechamento de chaves DEVE seguir na próxima linha após o corpo;
  • Parênteses de abertura para estruturas de controle NÃO DEVE ter um espaço depois deles, e o fechamento de parênteses para estruturas de controle NÃO DEVE ter um espaço antes.

Padrões Para Os Arquivos

Em seguida, vamos listar alguns padrões para os arquivos PHP.

  • DEVE usar apenas as seguintes tags de abertura <?php e <?=;
  • DEVE usar apenas a codificação UTF-8 sem BOM;
  • Todos os arquivos PHP DEVE terminar com uma única linha em branco;
  • A tag de fechamento ?> DEVE ser omitida em arquivos que contêm apenas PHP;

Exemplo Prático

Este exemplo engloba algumas das regras acima como uma visão geral rápida:

<?php
namespace Vendor\Package;

use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;

class Foo extends Bar implements FooInterface
{
    public function sampleMethod($a, $b = null)
    {
        if ($a === $b) {
            bar();
        } elseif ($a > $b) {
            $foo->bar($arg1);
        } else {
            BazClass::bar($arg2, $arg3);
        }
    }

    final public static function bar()
    {
        // method body
    }
}

PSR’s Mais Específicas

Podemos encontrar na PSR-2, também os padrões de código para as estruturas de controle, por exemplo, if, elseif, else, switch case, while, do while, for, foreach e try catch.

Conclusão

Conclui-se que com a utilização dos padrões das PSR-1 e PSR-2, os códigos serão legíveis, elegantes. Em resumo, trarão muitos benefícios para toda a equipe de desenvolvimento.

Por favor, siga e curta:
error0
fb-share-icon20

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *