a importância dos padrões na comunidade php

17
padrões na comunidade php

Upload: klaussilveira

Post on 17-Jul-2015

834 views

Category:

Technology


4 download

TRANSCRIPT

padrõesna comunidade php

klaus silveiradesenvolvedor

& instrutor

Evolução... da comunidade

· TDD, TAD

· Controle de qualidade

· Bibliotecas desacopladas

· Gerenciamento de dependências

(phpmd, codesniffer, cpd)

(composer!)

Interoperabilidade

· Se bibliotecas são interoperáveis... porque

frameworks deveriam falhar?

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

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

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;

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.

PSR-1

PSR-1

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

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

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

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

PSR-2: as regras

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)

[email protected]

klaussilveira.comgithub.com/klaussilveira

perguntas?