A importância dos padrões na comunidade PHP

  • 773 views
Uploaded 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).

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
773
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
6
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. padrõesna comunidade php
  • 2. klaus silveira desenvolvedor & instrutor
  • 3. Evolução... da comunidade· TDD, TAD· Controle de qualidade (phpmd, codesniffer, cpd)· Bibliotecas desacopladas· Gerenciamento de dependências (composer!)
  • 4. Interoperabilidade· Se bibliotecas são interoperáveis... porqueframeworks deveriam falhar?
  • 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. 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. 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. 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. PSR-1
  • 10. PSR-1
  • 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. 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. 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. 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. PSR-2: as regras
  • 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. perguntas? obrigado!klaussilveira@php.net klaussilveira.com github.com/klaussilveira