como contribuir-com-open-source-php conference-2016
TRANSCRIPT
Be Free. KDE
PHPInternals comPHPUnit
#PHPConference-2016
@marcosptf
2/49 Be Free. KDE
About me@marcosptf
pyterophpzerojavero
3/49 Be Free. KDE
o que é open source?Distribuição livreA licença não deve restringir de nenhuma maneira a venda ou distribuição doprograma gratuitamente, como componente de outro programa ou não.
Código fonteO programa deve incluir seu código fonte e deve permitir a sua distribuição.
Integridade do autor do código fonteA licença deve explicitamente permitir a distribuição do programa construído apartir do código fonte modificado.
Be Free. KDE
Exemplos de projetos
5/49 Be Free. KDE
porque contribuir?Aprender maisConhecer melhor o projetoNetworkCarreira Então...., porque não contribuir?
6/49 Be Free. KDE
O PHP precisa de você!!!
7/49 Be Free. KDE
Vamos contribuir?
8/49 Be Free. KDE
php - contribuindophp-docFramework TestsBugs reportingphp-src internalsphpunitphp hacker guide
9/49 Be Free. KDE
php-dochttp://doc.php.net/tutorial/structure.phpsvn checkouthttps://svn.php.net/repository/phpdoc/modules/doc-{LANG} phpdoc->corrigir documentação->criar documentação->traduzir para o portugues
10/49
Be Free. KDE
php-doc - Files Structure/phpdoc/{LANG}/reference/extension_name/book.xml - acts as the container for theextension and contains the preface. Other files(like examples.xml) are included from here.setup.xml - includes setup, install andconfiguration documentationconstants.xml - lists all constants that theextension declared.
11/49
Be Free. KDE
php-doc - Files Structureconfigure.xml - usually this information is insetup.xml, but if the file exists it is magicallyincluded into setup.xmlexamples.xml - various examplesfoo.xml - example, foo can be anything specificto a topic. Just be sure to include via book.xml.
12/49
Be Free. KDE
php-doc - Files Structurereference.xml - container for the functions,rarely contains any infofunctions/ - folder with one XML file per functionthat the extension declaresclassname.xml - container for the methodsdefined by the class, contains also basic infoabout itclassname/ - folder with one XML per methodthat the class declares.
13/49
Be Free. KDE
php-doc - Files Structure{LANG}/language-defs.ent - contains localentities used by this language. Some commonones are the main part titles, but you shouldalso put entities used only by this language'sfiles here.{LANG}/language-snippets.ent - longer oftenused XML snippets translated to this language.Including common warnings, notes, etc.
14/49
Be Free. KDE
Framework Tests./configuremakemake installmake testThanks :-)
15/49
Be Free. KDE
bugs.php.net
16/49
Be Free. KDE
bugs.php.net
17/49
Be Free. KDE
bugs.php.net
18/49
Be Free. KDE
bugs.php.net
19/49
Be Free. KDE
gcov.php.net
20/49
Be Free. KDE
php x ruby x rust
21/49
Be Free. KDE
como funciona php-src?Por favor acessem:https://github.com/php/php-src
22/49
Be Free. KDE
como funciona php-src?
23/49
Be Free. KDE
como funciona php-src?
24/49
Be Free. KDE
como funciona php-src?
TSRM - Thread Safe Resource Manager É uma API onde as extensões devem interagir para que possam atenderrequisições em paralelo sem restrições ou interferencias.
ex:mysqlicurlenchantexif pdo
25/49
Be Free. KDE
como funciona php-src?
ZEND - Zend Memory ManagerEste é o gerenciador de memoria onde tenta reduzir o uso de alocação esobrecarga.Quando habilitado, permite selecionar entre "malloc" e "emalloc" em tempo deexecução e permite ultilizar a memoria interna e externa e depuradores sem recompilação.
26/49
Be Free. KDE
como funciona php-src?
build - instalação e compilaçãoNeste diretorio ficam os scripts ultilizados quando é realizado algum comando de instalaçãoou compilação como:
./configuremakemake install
27/49
Be Free. KDE
como funciona php-src?
ext - extensõesNeste 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çãogithub/php-src/ext/<nome-da-extenção>/testes/
28/49
Be Free. KDE
como funciona php-src?
main - funcionalidades principaisNeste 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 socketgithub/php-src/main/network.c
29/49
Be Free. KDE
como funciona php-src?
netware - novellItens para manter compartibilidade com os componentes da novell.
30/49
Be Free. KDE
como funciona php-src?
pear - php extension and applicationrepositoryItens para manter compartibilidade com as extenções do pear.
31/49
Be Free. KDE
como funciona php-src?
sapi - Server APIÉ o mecanismo que controla a interação entre o "mundo exterior" e o mecanismoPHP/Zend.
O SAPI é um aplicativo interface de programação (API) fornecido pelo servidor web para ajudar outros desenvolvedores em estender o web serverrecursos.
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 DLLchamado php5apache2.dll.
Existem diferentes tipos de SAPIs para várias extensões de servidor web, como porexemplo, outro dois SAPIs para a linguagem PHP são Common Gateway Interface (CGI) einterface de linha de comando (CLI).
32/49
Be Free. KDE
como funciona php-src?
scripts - configsão scripts de configuração para o projeto.
33/49
Be Free. KDE
como funciona php-src?tests
onde ficam alguns testes relacionados ao core do phpgithub/php-src/tests
lembrando que os testes de extensões ficam aqui:github/php-src/ext/<nome-da-extenção>/testes/
34/49
Be Free. KDE
como funciona php-src?
travis - ci
35/49
Be Free. KDE
como funciona php-src?
win32 - scripts e configurações paraambientes microsoft.
36/49
Be Free. KDE
PHPUnit *.phpt
Os arquivos escritos em .phpt são usadospara fazer testes de integração
-Testes de Integração:É a Fase que os modulos são testados emgrupo.
- Testes de Unitarios:Os Modulos são testados individualmente
37/49
Be Free. KDE
PHPUnit *.phpt
38/49
Be Free. KDE
PHPUnit *.phpt
39/49
Be Free. KDE
PHPUnit *.phpt
Vamos quebrar em partes, como funcionaas principais tags PHPUnit para .phpt
40/49
Be Free. KDE
PHPUnit *.phpt
41/49
Be Free. KDE
PHPUnit *.phpt
42/49
Be Free. KDE
PHPUnit *.phpt
43/49
Be Free. KDE
PHPUnit *.phpt
44/49
Be Free. KDE
PHPCore Hacker
PHP at the Core: A Hacker's Guide
http://php.net/manual/en/internals2.php
45/49
Be Free. KDE
Sara Golemon@sgolemon
46/49
Be Free. KDE
Vamos contribuir?
47/49
Be Free. KDE
O PHP precisa de você!!!
48/49
Be Free. KDE
About me@marcosptf
pyterophpzerojavero
49/49
Be Free. KDE
!!!Obrigado!!!
duvidas?