padrõesna comunidade php
klaus silveira    desenvolvedor       & instrutor
Evolução... da comunidade· TDD, TAD· Controle de qualidade   (phpmd, codesniffer, cpd)· Bibliotecas desacopladas· Gerencia...
Interoperabilidade· Se bibliotecas são interoperáveis... porqueframeworks deveriam falhar?
PSR-0· Regras para nomear namespaces e classes· Regras para estrutura de pastas· Autoloader genéricoCommit da versão final...
PHP-FIG (PHP Framework Interoperability Group)· Grupo de desenvolvedores de bibliotecas depeso e frameworks, que discutem ...
Direito ao voto· Para ter direito a voto, você precisa serrepresentante de um projeto significativo dacomunidade.· Você ta...
Membros votantes· O grupo conta com representantes dosseguintes projetos:Lithium, phpBB, PEAR, Doctrine, Composer, Packagi...
PSR-1
PSR-1
PSR-1: porque?· Coding standards são essenciais em qualquerprojeto onde há mais de 2 programadores· Programadores sempre a...
PSR-1: um resumo· Muitos meses de discussão, no GitHub e na lista· Pesquisa sobre cada regra do padrão, feita emcima dos p...
PSR-1 e PSR-2· Proposta inicial separada em duas· A PSR-1 especifica regras parainteroperabilidade técnica entre projetosd...
PSR-1: as regras· Arquivos devem usar apenas as tags<?php e <?=· Arquivos devem usar UTF-8 sem BOM (byte order mark, )·...
PSR-2: as regras
Futuro· Interfaces comuns para operações comuns                                     (cache, http)· Difusão dos padrões· Es...
perguntas?     obrigado!klaussilveira@php.net        klaussilveira.com github.com/klaussilveira
Upcoming SlideShare
Loading in …5
×

A importância dos padrões na comunidade PHP

933 views
886 views

Published on

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).

Published in: Technology

A importância dos padrões na comunidade PHP

  1. 1. padrõesna comunidade php
  2. 2. klaus silveira desenvolvedor & instrutor
  3. 3. Evolução... da comunidade· TDD, TAD· Controle de qualidade (phpmd, codesniffer, cpd)· Bibliotecas desacopladas· Gerenciamento de dependências (composer!)
  4. 4. Interoperabilidade· Se bibliotecas são interoperáveis... porqueframeworks deveriam falhar?
  5. 5. PSR-0· Regras para nomear namespaces e classes· Regras para estrutura de pastas· Autoloader genéricoCommit da versão final em 4 de Novembro de 2010 peloMatthew OPhinney. Um longo caminho até o que temoshoje, trilhado inicialmente pelos projetos Zend Framework,Symfony e Doctrine. (brejas pro @fabpot, @weierophinney e @guilhermeblanco!)
  6. 6. PHP-FIG (PHP Framework Interoperability Group)· Grupo de desenvolvedores de bibliotecas depeso e frameworks, que discutem um únicoobjetivo: encontrar maneira de trabalhar juntos· Surgiu em uma reunião na php|tek 2009· Inicialmente um grupo fechado, hoje é abertopara discussão, tendo representantes deprojetos importantes como membros votantes· Qualquer um pode enviar uma proposta
  7. 7. Direito ao voto· Para ter direito a voto, você precisa serrepresentante de um projeto significativo dacomunidade.· Você também precisa ser apoiado pelosmembros votantes atuais;
  8. 8. Membros votantes· O grupo conta com representantes dosseguintes projetos:Lithium, phpBB, PEAR, Doctrine, Composer, Packagist,Zikula, PPI, Propel, Joomla, Drupal, Solar Framework, AuraProject, FLOW3, CakePHP, SabreDAV, Amazon Web ServicesSDK, Symfony2, eZ Publish, Chisimba, C4, PyroCMS, Assetic,Buzz, Zend Framework 2 e Agavi.· Estes representantes votam em propostas depadrões e propostas de novos membros
  9. 9. PSR-1
  10. 10. PSR-1
  11. 11. PSR-1: porque?· Coding standards são essenciais em qualquerprojeto onde há mais de 2 programadores· Programadores sempre acham seu estilomelhor. Se não podemos ficar todos felizes,vamos ficar todos tristes!· Se existe uma interoperabilidade técnica, nadamais natural que considerar coding standardsuma questão crucial para interoperabilidade
  12. 12. PSR-1: um resumo· Muitos meses de discussão, no GitHub e na lista· Pesquisa sobre cada regra do padrão, feita emcima dos projetos participantes· Muito buzz, muita gente pegando o bondeandando...· Proposta inicial rejeitada
  13. 13. PSR-1 e PSR-2· Proposta inicial separada em duas· A PSR-1 especifica regras parainteroperabilidade técnica entre projetosdurante 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, maspreferir não optar pela PSR-2
  14. 14. 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. OUcausar efeitos colaterais (gerar saída, incluir um arquivo, alterar ophp.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 letrasmaiúsculas e, caso existam separadores, com underline· Nomes de métodos devem estar em camelCase
  15. 15. PSR-2: as regras
  16. 16. Futuro· Interfaces comuns para operações comuns (cache, http)· Difusão dos padrões· Esperar viver em um mundo ondedesenvolvedores PHP parem de usarDreamweaver e mysql_connect
  17. 17. perguntas? obrigado!klaussilveira@php.net klaussilveira.com github.com/klaussilveira

×