Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

PHP PSRs : PSR-2 & PSR-12 Parte 1

Posted on Oct 7 A PSR-2 surgiu com o objetivo de tornar a escrita e a legibilidade do código mais simples e fácil para os desenvolvedores.INFORMAÇÃO IMPORTANTEA PSR-2 foi descontinuada/substituda pela PSR-12 devido a inúmeras funcionalidades que foram surgindo no PHP.A PSR-12 é uma extensão da PSR-2 e possui o mesmo objetivo que ela, porém com um contexto mais moderno e novas funcionalidades que seguem a evolução do PHP.Como o PHP 7 teve muitas mudanças, a reescrita da PSR-2 em uma nova PSR foi necessária para atender a todas as novidades disponíveis no PHP 7.Os códigos PHP Devem seguir os padrões estabelecidos naPSR-1. Por ser uma extensão da PSR-1, seu código primeiramente Deve estar em conformidade com a PSR-1 antes de aplicar a PSR-12.O termo StudlyCaps no PSR-1 Deve Ser interpretado como PascalCase , onde a primeira letra de cada palavra é maiúscula.Arquivos PHP DEVEM possuir o padrão UNIX de terminação de linha.O padrão UNIX adotado pela PSR-12 é o LF. Geralmente, as IDEs já vêm configuradas para o padrão UNIX, mas isso pode ser alterado facilmente dependendo da IDE utilizada.Arquivos contendo apenas código PHP DEVEM possuir uma linha em branco ao final. Após toda a lógica aplicada, deve haver uma linha em branco ao final do arquivo.Arquivos contendo apenas PHP DEVEM ter a TAG de fechamento omitida. A regra não se aplica aos arquivos contendo HTML + PHP.O comprimento máximo de uma linha de código DEVE ser de 120 caracteres. Verificadores de estilo automatizado DEVEM avisar, mas NÃO DEVEM exibir erro.As linhas de código NÃO DEVEM ter mais de 80 caracteres. Linhas de código mais longas DEVEM ser quebradas em várias linhas subsequentes de no máximo 80 caracteres.Portanto, atente-se para que a cada 80 caracteres você possa quebrar a linha de modo que fique legível e, caso não consiga, você ainda possui o limite de 120 caracteres.Linhas que possuem conteúdo NÃO DEVEM possuir espaços em branco ao final de seu conteúdo.Para facilitar a interpretação do código, linhas em branco PODEM ser adicionadas. Você pode adicionar linhas em branco para tornar a interpretação do código mais fácil.NÃO DEVE haver múltiplas declarações em uma única linha cada declaração de variável deve ser feita em uma nova linha.Maneira certa:Maneira errada:Códigos PHP DEVEM possuir indentação com 4 espaços e não com TABs. Algumas IDEs já vêm com o padrão de 4 espaços ao teclar o TAB.As palavras-chaves, tipos reservados e constantes true, false e null DEVEM ser escritas com letras minúsculas.Quaisquer novos tipos e palavras-chaves adicionados em versões futuras do PHP DEVEM estar em minúsculas.É necessário usar uma forma abreviada de palavras-chaves dotipo de dado, ou seja, bool em vez de boolean, int em vez deinteger etc.Se o cabeçalho estiver presente, cada um dos blocos a seguir DEVE ser separado por uma única linha em branco e NÃO DEVE conter uma linha em branco.Cada bloco DEVE estar na ordem listada a seguir, mas os blocos que não são relevantes podem ser omitidos.Vamos conferir um exemplo a seguir que ilustra a aplicação da sequência definida pela PSR-12 citada anteriormente:Os namespaces compostos com profundidade superior a dois NÃO DEVEM ser utilizados.O exemplo a seguir demonstra a utilização máxima de composição permitida:O exemplo a seguir não é permitido pela PSR-12:Se desejar declarar tipos estritos em arquivos contendo marcação HTML fora das TAGs de abertura do PHP, a declaração DEVE estar na primeira linha do arquivo e incluir uma TAG de abertura do PHP.Instruções declare() NÃO DEVEM conter espaços e DEVEM ser declaradas exatamente da maneira a seguir: declare(strict_types=1). O ponto e vírgula no final da instrução é opcional.As declarações de bloco declare contendo o código a ser executado são permitidas e DEVEM ser formatadas como demonstrado no exemplo a seguir. Observe a posição das chaves e o espaçamento:Após qualquer chave de fechamento, NÃO DEVE haver nenhum comentário ou declaração na mesma linha.Ao instanciar uma nova classe, os parênteses DEVEM estarsempre presentes, mesmo quando não houver parâmetrospassados para o construtor.As palavras-chaves extends e implements DEVEM ser declaradas na mesma linha que contém o nome da classe.A chave de abertura { da classe DEVE ser inserida em umanova linha e NÃO DEVE ser precedida ou seguida por uma linha em branco.A chave de fechamento } da classe também DEVE ser inserida em uma nova linha logo após a definição do corpo daclasse e NÃO DEVE ser precedida ou seguida por uma linha em branco.Quando houver a necessidade de múltiplos implements , eles PODEM ser divididos em múltiplas linhas, sendo que cada linha subsequente é recuada uma veze DEVE possuir somente uma interface por linha.Para utilizar Traits e usufruir da herança vertical dentro das classes, a instrução use DEVE ser declarada na próxima linha após a chave { de abertura da classe.Cada Trait a ser utilizada dentro da classe DEVE ser incluída uma por linha, sendo que cada Trait DEVE ter a sua própria declaração de uso use.Quando a classe não tem nada após a declaração de uso use, a chave de fechamento da classe DEVE estar na linha subsequente.Se a classe tiver conteúdo após a declaração de uso da Trait DEVE ter uma linha em branco após a declaração de uso use.O uso dos operadores insteadof e as DEVE ser feito da seguinte maneira, percebendo recuo, espaçamento e novas linhas:A visibilidade ou modificadores de acesso DEVEM ser definidos em todas as propriedades. Toda propriedade que for definida deve possuir o modificador de acesso definido antes do seu nome.A palavra-chave var NÃO DEVE ser utilizada para a definição de propriedades da classe.Apesar de não ser correto, o código será interpretado corretamente, e automaticamente todas as propriedades assumirão a visibilidade pública.Templates let you quickly answer FAQs or store snippets for re-use. Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink. Hide child comments as well Confirm For further actions, you may consider blocking this person and/or reporting abuse Anton - Sep 23 Camilo Micheletto - Sep 21 Camilo Micheletto - Sep 22 Nathan Ferreira - Sep 20 Once suspended, xxzeroxx will not be able to comment or publish posts until their suspension is removed. Once unsuspended, xxzeroxx will be able to comment and publish posts again. Once unpublished, all posts by xxzeroxx will become hidden and only accessible to themselves. If xxzeroxx is not suspended, they can still re-publish their posts from their dashboard. Note: Once unpublished, this post will become invisible to the public and only accessible to Antonio Silva. They can still re-publish the post if they are not suspended. Thanks for keeping DEV Community safe. Here is what you can do to flag xxzeroxx: xxzeroxx consistently posts content that violates DEV Community's code of conduct because it is harassing, offensive or spammy. Unflagging xxzeroxx will restore default visibility to their posts. DEV Community — A constructive and inclusive social network for software developers. With you every step of your journey. Built on Forem — the open source software that powers DEV and other inclusive communities.Made with love and Ruby on Rails. DEV Community © 2016 - 2023. We're a place where coders share, stay up-to-date and grow their careers.



This post first appeared on VedVyas Articles, please read the originial post: here

Share the post

PHP PSRs : PSR-2 & PSR-12 Parte 1

×

Subscribe to Vedvyas Articles

Get updates delivered right to your inbox!

Thank you for your subscription

×