Como contribuir-com-open-source-php conference-2016
O documento discute várias maneiras de contribuir com o PHP, incluindo documentação PHPDoc, testes de framework, relatórios de bugs, código-fonte interno PHP e PHPUnit. Ele também explica brevemente como o código-fonte PHP é estruturado.
2/49 Be Free.KDE
About me
@marcosptf
pytero
phpzero
javero
3.
3/49 Be Free.KDE
o que é open source?
Distribuição livre
A licença não deve restringir de nenhuma maneira a venda ou distribuição do
programa gratuitamente, como componente de outro programa ou não.
Código fonte
O programa deve incluir seu código fonte e deve permitir a sua distribuição.
Integridade do autor do código fonte
A licença deve explicitamente permitir a distribuição do programa construído a
partir do código fonte modificado.
9/49 Be Free.KDE
php-doc
http://doc.php.net/tutorial/structure.php
svn checkout
https://svn.php.net/repository/phpdoc/modules/
doc-{LANG} phpdoc
->corrigir documentação
->criar documentação
->traduzir para o portugues
10.
10
/49
Be Free. KDE
php-doc- Files Structure
/phpdoc/{LANG}/reference/extension_name/
book.xml - acts as the container for the
extension and contains the preface. Other files
(like examples.xml) are included from here.
setup.xml - includes setup, install and
configuration documentation
constants.xml - lists all constants that the
extension declared.
11.
11
/49
Be Free. KDE
php-doc- Files Structure
configure.xml - usually this information is in
setup.xml, but if the file exists it is magically
included into setup.xml
examples.xml - various examples
foo.xml - example, foo can be anything specific
to a topic. Just be sure to include via book.xml.
12.
12
/49
Be Free. KDE
php-doc- Files Structure
reference.xml - container for the functions,
rarely contains any info
functions/ - folder with one XML file per function
that the extension declares
classname.xml - container for the methods
defined by the class, contains also basic info
about it
classname/ - folder with one XML per method
that the class declares.
13.
13
/49
Be Free. KDE
php-doc- Files Structure
{LANG}/language-defs.ent - contains local
entities used by this language. Some common
ones are the main part titles, but you should
also put entities used only by this language's
files here.
{LANG}/language-snippets.ent - longer often
used XML snippets translated to this language.
Including common warnings, notes, etc.
24
/49
Be Free. KDE
comofunciona php-src?
TSRM - Thread Safe Resource Manager
É uma API onde as extensões devem interagir para que possam atender
requisições em paralelo sem restrições ou interferencias.
ex:
mysqli
curl
enchant
exif
pdo
25.
25
/49
Be Free. KDE
comofunciona php-src?
ZEND - Zend Memory Manager
Este é o gerenciador de memoria onde tenta reduzir o uso de alocação e
sobrecarga.
Quando habilitado, permite selecionar entre "malloc" e "emalloc" em tempo de
execução e permite ultilizar a memoria interna e externa e depuradores sem
recompilação.
26.
26
/49
Be Free. KDE
comofunciona php-src?
build - instalação e compilação
Neste diretorio ficam os scripts ultilizados quando é realizado algum comando de instalação
ou compilação como:
./configure
make
make install
27.
27
/49
Be Free. KDE
comofunciona php-src?
ext - extensões
Neste diretorio ficam as extenções que fazem parte do core php
diretorio onde ficam as extenções:
github/php-src/ext/
diretorio onde fica o codigo fonte das extenções:
github/php-src/ext/<nome-da-extenção>/
diretorio onde ficam os testes de integração
github/php-src/ext/<nome-da-extenção>/testes/
28.
28
/49
Be Free. KDE
comofunciona php-src?
main - funcionalidades principais
Neste diretorio ficam as validações e funcionalidades principais do php
aqui por exemplo, ele verifica se a variavel criada em php, realmente é valida:
github/php-src/main/php_variables.c#L56
diretorio onde fica o codigo fonte da conexao php com redes via socket
github/php-src/main/network.c
29.
29
/49
Be Free. KDE
comofunciona php-src?
netware - novell
Itens para manter compartibilidade com os componentes da novell.
30.
30
/49
Be Free. KDE
comofunciona php-src?
pear - php extension and application
repository
Itens para manter compartibilidade com as extenções do pear.
31.
31
/49
Be Free. KDE
comofunciona php-src?
sapi - Server API
É o mecanismo que controla a interação entre o "mundo exterior" e o mecanismo
PHP/Zend.
O SAPI é um aplicativo interface de programação (API)
fornecido pelo servidor web para ajudar outros desenvolvedores em estender o web server
recursos.
O PHP tem uma interface direta do módulo chamada SAPI para servidores web diferentes.
No caso de PHP 5 e Apache 2.0 no Windows, ele é fornecido na forma de um arquivo DLL
chamado php5apache2.dll.
Existem diferentes tipos de SAPIs para várias extensões de servidor web, como por
exemplo, outro dois SAPIs para a linguagem PHP são Common Gateway Interface (CGI) e
interface de linha de comando (CLI).
32.
32
/49
Be Free. KDE
comofunciona php-src?
scripts - config
são scripts de configuração para o projeto.
33.
33
/49
Be Free. KDE
comofunciona php-src?
tests
onde ficam alguns testes relacionados ao core do php
github/php-src/tests
lembrando que os testes de extensões ficam aqui:
github/php-src/ext/<nome-da-extenção>/testes/
35
/49
Be Free. KDE
comofunciona php-src?
win32 - scripts e configurações para
ambientes microsoft.
36.
36
/49
Be Free. KDE
PHPUnit*.phpt
Os arquivos escritos em .phpt são usados
para fazer testes de integração
-Testes de Integração:
É a Fase que os modulos são testados em
grupo.
- Testes de Unitarios:
Os Modulos são testados individualmente