Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A importância dos padrões na comunidade PHP

A importância dos padrões na comunidade PHP

Palestra dedicada a explicar o que são as PSR's e como o PHP-FIG funciona, inclusive mostrando o processo de submissão de proposta (usando o exemplo da minha submissão da PSR-1).

Klaus Silveira

July 07, 2012
Tweet

More Decks by Klaus Silveira

Other Decks in Programming

Transcript

  1. Evolução... da comunidade · TDD, TAD · Controle de qualidade

    · Bibliotecas desacopladas · Gerenciamento de dependências (phpmd, codesniffer, cpd) (composer!)
  2. PSR-0 · Regras para nomear namespaces e classes · Regras

    para estrutura de pastas · Autoloader genérico Commit da versão final em 4 de Novembro de 2010 pelo Matthew O'Phinney. Um longo caminho até o que temos hoje, trilhado inicialmente pelos projetos Zend Framework, Symfony e Doctrine. (brejas pro @fabpot, @weierophinney e @guilhermeblanco!)
  3. PHP-FIG (PHP Framework Interoperability Group) · Grupo de desenvolvedores de

    bibliotecas de peso e frameworks, que discutem um único objetivo: encontrar maneira de trabalhar juntos · Surgiu em uma reunião na php|tek 2009 · Inicialmente um grupo fechado, hoje é aberto para discussão, tendo representantes de projetos importantes como membros votantes · Qualquer um pode enviar uma proposta
  4. Direito ao voto · Para ter direito a voto, você

    precisa ser representante de um projeto significativo da comunidade. · Você também precisa ser apoiado pelos membros votantes atuais;
  5. Membros votantes · O grupo conta com representantes dos seguintes

    projetos: · Estes representantes votam em propostas de padrões e propostas de novos membros Lithium, phpBB, PEAR, Doctrine, Composer, Packagist, Zikula, PPI, Propel, Joomla, Drupal, Solar Framework, Aura Project, FLOW3, CakePHP, SabreDAV, Amazon Web Services SDK, Symfony2, eZ Publish, Chisimba, C4, PyroCMS, Assetic, Buzz, Zend Framework 2 e Agavi.
  6. PSR-1: porque? · Coding standards são essenciais em qualquer projeto

    onde há mais de 2 programadores · Programadores sempre acham seu estilo melhor. Se não podemos ficar todos felizes, vamos ficar todos tristes! · Se existe uma interoperabilidade técnica, nada mais natural que considerar coding standards uma questão crucial para interoperabilidade
  7. PSR-1: um resumo · Muitos meses de discussão, no GitHub

    e na lista · Pesquisa sobre cada regra do padrão, feita em cima dos projetos participantes · Muito buzz, muita gente pegando o bonde andando... · Proposta inicial rejeitada
  8. PSR-1 e PSR-2 · Proposta inicial separada em duas ·

    A PSR-1 especifica regras para interoperabilidade técnica entre projetos durante a escrita de código · A PSR-2 especifica regras de estilo, não- essenciais · Um projeto pode adotar a PSR-0 e PSR-1, mas preferir não optar pela PSR-2
  9. PSR-1: as regras · Arquivos devem usar apenas as tags<?php

    e <?= · Arquivos devem usar UTF-8 sem BOM (byte order mark, ) · Arquivos devem declarar classes, funções, constantes, etc. OU causar efeitos colaterais (gerar saída, incluir um arquivo, alterar o php.ini). NUNCA os dois. · Namespaces e classes devem seguir a PSR-0 · Nomes de Classes devem estar em StudlyCaps · Constantes de classe devem ser declaradas com letras maiúsculas e, caso existam separadores, com underline · Nomes de métodos devem estar em camelCase
  10. Futuro · Interfaces comuns para operações comuns · Difusão dos

    padrões · Esperar viver em um mundo onde desenvolvedores PHP parem de usar Dreamweaver e mysql_connect (cache, http)