DEV Community

Cover image for PHP PSR 1 - Resumo
Arthur Barboza
Arthur Barboza

Posted on

PHP PSR 1 - Resumo

As PSRs (PHP Standards Recomendations) se tratam de padronizações e boas práticas para o desenvolvimento de software com a linguagem PHP.

A aplicação das PSRs no desenvolvimento de sistemas, tem o intuito de reforçar a qualidade interna do código, resultando em uma boa manutenibilidade e clareza para os desenvolvedores.

Em alguns casos, a não procedência de uma recomendação pode até mesmo resultar problemas como a falta de coesão e clareza do código, ou até mesmo erros de runtime do software.

As PSRs apresentam diretivas tais como nomenclatura de variáveis, abertura de tags PHP, declaração de classes, protocolo HTTP, padrão de carregamento de classes, interface de cacheamento, interface de container e outros.

Segue abaixo resumo da PSR1 - Padrões de Codificação Básica

PSR 1 - Review

Files

  1. Arquivos podem usar as aberturas e fechamentos "<?php ?>" e "<?= ?>" mas não devem utilizar outras variações

  2. O código PHP deve estar em UTF-8

  3. O código PHP não deve declarar símbolos (classes, constantes, funções) e gerar "efeitos colateráis" (configurar variáveis .ini, carregar arquivos manualmente, gerar output, entre outros) no mesmo arquivo

Namespaces e Nomes de Classes

  1. Cada classe deve estar em um arquivo e um namespace de ao menos um nível (conforme padronizado pela PSR-4)

  2. Nome de classes devem ser declarados seguindo formato "StudlyCaps"

  3. Código a partir do PHP 5.3 deve usar namespaces
    3.1. Códigos de versões anteriores deve utilizar o pseudonamespace, muito comum no Magento 1 e outros sistemas legados

Métodos, Constantes e Propriedade de Classes

O termo "classe" se refere as classes, interfaces e traits

  1. Constantes de classes devem ser declaradas totalmente em upper case com underline como separador ("UPPER_CASE")

  2. Não há uma convenção de nomenclatura pré-definida da PSR-1 para nomes de propriedades, apenas recomenda o uso consistente para escopos razoáveis (vendor, pacote, classe, método)

  3. Métodos devem ser declarados em "camelCase"

Top comments (0)