Be Free. KDE
PHPInternals com
PHPUnit
#PHPConference-2016
@marcosptf
2/49 Be Free. KDE
About me
@marcosptf
pytero
phpzero
javero
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.
Be Free. KDE
Exemplos de projetos
5/49 Be Free. KDE
porque contribuir?
Aprender mais
Conhecer melhor o projeto
Network
Carreira
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 - contribuindo
php-doc
Framework Tests
Bugs reporting
php-src internals
phpunit
php hacker guide
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
/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
/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
/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
/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.
14
/49
Be Free. KDE
Framework Tests
./configure
make
make install
make test
Thanks :-)
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 atender
requisições em paralelo sem restrições ou interferencias.
ex:
mysqli
curl
enchant
exif
pdo
25
/49
Be Free. KDE
como funciona 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
/49
Be Free. KDE
como funciona 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
/49
Be Free. KDE
como funciona 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
/49
Be Free. KDE
como funciona 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
/49
Be Free. KDE
como funciona php-src?
netware - novell
Itens para manter compartibilidade com os componentes da novell.
30
/49
Be Free. KDE
como funciona php-src?
pear - php extension and application
repository
Itens 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 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
/49
Be Free. KDE
como funciona php-src?
scripts - config
sã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 php
github/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 para
ambientes microsoft.
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
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 funciona
as 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
pytero
phpzero
javero
49
/49
Be Free. KDE
!!!Obrigado!!!
duvidas?

Como contribuir-com-open-source-php conference-2016

  • 1.
    Be Free. KDE PHPInternalscom PHPUnit #PHPConference-2016 @marcosptf
  • 2.
    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.
  • 4.
  • 5.
    5/49 Be Free.KDE porque contribuir? Aprender mais Conhecer melhor o projeto Network Carreira Então...., porque não contribuir?
  • 6.
    6/49 Be Free.KDE O PHP precisa de você!!!
  • 7.
    7/49 Be Free.KDE Vamos contribuir?
  • 8.
    8/49 Be Free.KDE php - contribuindo php-doc Framework Tests Bugs reporting php-src internals phpunit php hacker guide
  • 9.
    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.
  • 14.
    14 /49 Be Free. KDE FrameworkTests ./configure make make install make test Thanks :-)
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
    21 /49 Be Free. KDE comofunciona php-src? Por favor acessem: https://github.com/php/php-src
  • 22.
    22 /49 Be Free. KDE comofunciona php-src?
  • 23.
    23 /49 Be Free. KDE comofunciona php-src?
  • 24.
    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/
  • 34.
    34 /49 Be Free. KDE comofunciona php-src? travis - ci
  • 35.
    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
  • 37.
  • 38.
  • 39.
    39 /49 Be Free. KDE PHPUnit*.phpt Vamos quebrar em partes, como funciona as principais tags PHPUnit para .phpt
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
    44 /49 Be Free. KDE PHPCoreHacker PHP at the Core: A Hacker's Guide http://php.net/manual/en/internals2.php
  • 45.
    45 /49 Be Free. KDE SaraGolemon @sgolemon
  • 46.
  • 47.
    47 /49 Be Free. KDE OPHP precisa de você!!!
  • 48.
    48 /49 Be Free. KDE Aboutme @marcosptf pytero phpzero javero
  • 49.