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

49
Be Free. KDE PHPInternals com PHPUnit #PHPConference-2016 @marcosptf

Upload: marcos-paulo

Post on 07-Jan-2017

60 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Como contribuir-com-open-source-php conference-2016

Be Free. KDE

PHPInternals comPHPUnit

#PHPConference-2016

@marcosptf

Page 2: Como contribuir-com-open-source-php conference-2016

2/49 Be Free. KDE

About me@marcosptf

pyterophpzerojavero

Page 3: Como contribuir-com-open-source-php conference-2016

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.

Page 4: Como contribuir-com-open-source-php conference-2016

Be Free. KDE

Exemplos de projetos

Page 5: Como contribuir-com-open-source-php conference-2016

5/49 Be Free. KDE

porque contribuir?Aprender maisConhecer melhor o projetoNetworkCarreira Então...., porque não contribuir?

Page 6: Como contribuir-com-open-source-php conference-2016

6/49 Be Free. KDE

O PHP precisa de você!!!

Page 7: Como contribuir-com-open-source-php conference-2016

7/49 Be Free. KDE

Vamos contribuir?

Page 8: Como contribuir-com-open-source-php conference-2016

8/49 Be Free. KDE

php - contribuindophp-docFramework TestsBugs reportingphp-src internalsphpunitphp hacker guide

Page 9: Como contribuir-com-open-source-php conference-2016

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

Page 10: Como contribuir-com-open-source-php conference-2016

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.

Page 11: Como contribuir-com-open-source-php conference-2016

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.

Page 12: Como contribuir-com-open-source-php conference-2016

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.

Page 13: Como contribuir-com-open-source-php conference-2016

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.

Page 14: Como contribuir-com-open-source-php conference-2016

14/49

Be Free. KDE

Framework Tests./configuremakemake installmake testThanks :-)

Page 15: Como contribuir-com-open-source-php conference-2016

15/49

Be Free. KDE

bugs.php.net

Page 16: Como contribuir-com-open-source-php conference-2016

16/49

Be Free. KDE

bugs.php.net

Page 17: Como contribuir-com-open-source-php conference-2016

17/49

Be Free. KDE

bugs.php.net

Page 18: Como contribuir-com-open-source-php conference-2016

18/49

Be Free. KDE

bugs.php.net

Page 19: Como contribuir-com-open-source-php conference-2016

19/49

Be Free. KDE

gcov.php.net

Page 20: Como contribuir-com-open-source-php conference-2016

20/49

Be Free. KDE

php x ruby x rust

Page 21: Como contribuir-com-open-source-php conference-2016

21/49

Be Free. KDE

como funciona php-src?Por favor acessem:https://github.com/php/php-src

Page 22: Como contribuir-com-open-source-php conference-2016

22/49

Be Free. KDE

como funciona php-src?

Page 23: Como contribuir-com-open-source-php conference-2016

23/49

Be Free. KDE

como funciona php-src?

Page 24: Como contribuir-com-open-source-php conference-2016

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

Page 25: Como contribuir-com-open-source-php conference-2016

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.

Page 26: Como contribuir-com-open-source-php conference-2016

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

Page 27: Como contribuir-com-open-source-php conference-2016

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/

Page 28: Como contribuir-com-open-source-php conference-2016

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

Page 29: Como contribuir-com-open-source-php conference-2016

29/49

Be Free. KDE

como funciona php-src?

netware - novellItens para manter compartibilidade com os componentes da novell.

Page 30: Como contribuir-com-open-source-php conference-2016

30/49

Be Free. KDE

como funciona php-src?

pear - php extension and applicationrepositoryItens para manter compartibilidade com as extenções do pear.

Page 31: Como contribuir-com-open-source-php conference-2016

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

Page 32: Como contribuir-com-open-source-php conference-2016

32/49

Be Free. KDE

como funciona php-src?

scripts - configsão scripts de configuração para o projeto.

Page 33: Como contribuir-com-open-source-php conference-2016

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/

Page 34: Como contribuir-com-open-source-php conference-2016

34/49

Be Free. KDE

como funciona php-src?

travis - ci

Page 35: Como contribuir-com-open-source-php conference-2016

35/49

Be Free. KDE

como funciona php-src?

win32 - scripts e configurações paraambientes microsoft.

Page 36: Como contribuir-com-open-source-php conference-2016

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

Page 37: Como contribuir-com-open-source-php conference-2016

37/49

Be Free. KDE

PHPUnit *.phpt

Page 38: Como contribuir-com-open-source-php conference-2016

38/49

Be Free. KDE

PHPUnit *.phpt

Page 39: Como contribuir-com-open-source-php conference-2016

39/49

Be Free. KDE

PHPUnit *.phpt

Vamos quebrar em partes, como funcionaas principais tags PHPUnit para .phpt

Page 40: Como contribuir-com-open-source-php conference-2016

40/49

Be Free. KDE

PHPUnit *.phpt

Page 41: Como contribuir-com-open-source-php conference-2016

41/49

Be Free. KDE

PHPUnit *.phpt

Page 42: Como contribuir-com-open-source-php conference-2016

42/49

Be Free. KDE

PHPUnit *.phpt

Page 43: Como contribuir-com-open-source-php conference-2016

43/49

Be Free. KDE

PHPUnit *.phpt

Page 44: Como contribuir-com-open-source-php conference-2016

44/49

Be Free. KDE

PHPCore Hacker

PHP at the Core: A Hacker's Guide

http://php.net/manual/en/internals2.php

Page 45: Como contribuir-com-open-source-php conference-2016

45/49

Be Free. KDE

Sara Golemon@sgolemon

Page 46: Como contribuir-com-open-source-php conference-2016

46/49

Be Free. KDE

Vamos contribuir?

Page 47: Como contribuir-com-open-source-php conference-2016

47/49

Be Free. KDE

O PHP precisa de você!!!

Page 48: Como contribuir-com-open-source-php conference-2016

48/49

Be Free. KDE

About me@marcosptf

pyterophpzerojavero

Page 49: Como contribuir-com-open-source-php conference-2016

49/49

Be Free. KDE

!!!Obrigado!!!

duvidas?