SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Bibliotecas PHP
Por Jefersson Nathan
Jefersson Nathan
malukenho is a leader and representative of
the PHP User Group of the State of Sergipe,
Brazil. Where works to keep the local community
strong and united. Currently, he works in a
company focusing on web solutions and devotes
his free time to help with community projects
OpenSources contributions.
- Web and PHP Magazine, May 2013
2
O que é uma biblioteca?
Dicio
1. ...
2. Coleção de obras de um autor.
3. Coleção de obras sobre assuntos determinados.
4. Coleção de obras de um povo
4
Porque usar uma biblioteca?
Porque?
1. Fácilidade para resolver um problema
2. Reusabilidade
3. Confiança
4. Produtividade
5. $$ Dinaro $$
7
Tipos de biblioteca
Existem 2 principais tipos de bibliotecas no
php
1. Extensões escritas em C (Ex: SPL)
2. Bibliotecas em PHP (Composer, PHPunit, etc)
9
bla bla bla bla bla
10
COMPOSER
Composer
12
Instalação
$ curl -sS https://getcomposer.org/installer | php
--install-dir=bin
01.
02.
13
composer.json
{
require: {
"respect/validation": "dev-develop",
"phpunit/phpunit": "3.7.*"
}
}
01.
02.
03.
04.
05.
06.
14
Gerar composer.json
$ composer init
15
Autoloading
{
"autoload": {
"psr-0": { "PHPSergipe" : "src/"}
}
}
01.
02.
03.
04.
05.
16
Baixando dependências
$ composer install
$ php composer.phar install
01.
02.
17
Usando as bibliotecas
require "vendor/autoload.php";
$loader = require "vendor/autoload.php";
$loader->add('PHPSergipecodePhant', __DIR__);
01.
02.
03.
04.
18
composer.lock
Arquivo gerado depois que suas dependências são instaladas.
É altamente recomendável sua distribuição.
“
19
Packagist
Packagist é o repositório principal do composer. Ele agrega todos os tipos de
pacotes do PHP que são instaláveis com Composer. Aqui você pode procurar
pacotes ou enviar o seu próprio.
packagist.org
“
20
Distribuindo sua biblioteca
Sigam as PSRs
22
Bibliotecas
23
24
RespectValidation
{
"require": {
"respect/validation": "dev-develop"
}
}
01.
02.
03.
04.
05.
25
RespectValidation
<?php
use RespectValidationValidator as v;
$number = 123;
v::numeric()->validate($number); //true
https://github.com/Respect/Validation
01.
02.
03.
04.
05.
26
RespectValidation
$user = new stdClass;
$user->name = 'PHP Sergipe';
$user->birthdate = '1987-07-01';
$v = v::attribute('name', v::string()->length(1,32))
->attribute('birthdate', v::date()->minimumAge(18));
$v->validate($user); //true
01.
02.
03.
04.
05.
06.
07.
08.
27
RespectTemplate
use RespectTemplateHtml;
use RespectTemplateHtmlElement as H;
require __DIR__.'/../tests/bootstrap.php';
$template = new Html('./cssZenGarden.html', '#lselect');
https://github.com/Respect/Template
01.
02.
03.
04.
05.
06.
28
RespectTemplate
$template['#pageHeader h1'] = 'codePhantPHPSergipe';
$template['#preamble .p1'] = H::div(
H::p('Qual o nome do primeiro evento PHP em Sergipe
H::dl(
H::dt('codePhant?'),
H::dd('Yeah!')
)
)->class('p1');
01.
02.
03.
04.
05.
06.
07.
08.
29
RespectTemplate
echo $template->render();
01.
02.
03.
30
filpwhoops
{
"require": {
"filp/whoops": "1.*"
}
}
01.
02.
03.
04.
05.
32
filpwhoops
$app->register(
new WhoopsProviderSilexWhoopsServiceProvider
);
01.
02.
03.
33
filpwhoops
if ($app['debug']) {
$app->register(
new WhoopsProviderSilexWhoopsServiceProvider
);
}
01.
02.
03.
04.
05.
34
MENTORING
Augusto Pascutti
38
// Thanks
@malukenho
malukenho@phpse.net
www.jefersson.com.br
39

Weitere ähnliche Inhalte

Ähnlich wie Palestra codephant

Sabe barreiro versao_final_1a_sessao
Sabe barreiro versao_final_1a_sessaoSabe barreiro versao_final_1a_sessao
Sabe barreiro versao_final_1a_sessaoJoão Paulo Proença
 
Soltar a língua - as bibliotecas escolares e a aprendizagem da língua
Soltar a língua - as bibliotecas escolares e a aprendizagem da línguaSoltar a língua - as bibliotecas escolares e a aprendizagem da língua
Soltar a língua - as bibliotecas escolares e a aprendizagem da línguaMinistério da Educação
 
Contribuindo para projetos de software livre
Contribuindo para projetos de software livreContribuindo para projetos de software livre
Contribuindo para projetos de software livreLucas Barros
 
Johnson 2012 12 points checklist pt
Johnson 2012 12 points checklist ptJohnson 2012 12 points checklist pt
Johnson 2012 12 points checklist ptMaria Jose Vitorino
 
Representação Descritiva - RD - Catálogos e Bases de dados
Representação Descritiva - RD - Catálogos e Bases de dados Representação Descritiva - RD - Catálogos e Bases de dados
Representação Descritiva - RD - Catálogos e Bases de dados Priscila Campos
 
Aula 8 bibliotecário 2.0
Aula 8   bibliotecário 2.0Aula 8   bibliotecário 2.0
Aula 8 bibliotecário 2.0Sarah Oliveira
 
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-laA Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-laBruno Rocha
 
Tecnologias para bibliotecas
Tecnologias para bibliotecasTecnologias para bibliotecas
Tecnologias para bibliotecasAnderson Santana
 
A P R E S E N T AÇÃ O U N I D A D E 02
A P R E S E N T AÇÃ O  U N I D A D E 02A P R E S E N T AÇÃ O  U N I D A D E 02
A P R E S E N T AÇÃ O U N I D A D E 02Josélia Mendes
 
Explorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceExplorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceRafael Jaques
 

Ähnlich wie Palestra codephant (20)

Sabe barreiro versao_final_1a_sessao
Sabe barreiro versao_final_1a_sessaoSabe barreiro versao_final_1a_sessao
Sabe barreiro versao_final_1a_sessao
 
Biblioteca 2.0
Biblioteca 2.0Biblioteca 2.0
Biblioteca 2.0
 
5º encontro
5º encontro 5º encontro
5º encontro
 
A Biblioteca no teu computador - sessão 4
A Biblioteca no teu computador  - sessão 4A Biblioteca no teu computador  - sessão 4
A Biblioteca no teu computador - sessão 4
 
Aprendendo a-aprender
Aprendendo a-aprenderAprendendo a-aprender
Aprendendo a-aprender
 
Soltar a língua - as bibliotecas escolares e a aprendizagem da língua
Soltar a língua - as bibliotecas escolares e a aprendizagem da línguaSoltar a língua - as bibliotecas escolares e a aprendizagem da língua
Soltar a língua - as bibliotecas escolares e a aprendizagem da língua
 
Contribuindo para projetos de software livre
Contribuindo para projetos de software livreContribuindo para projetos de software livre
Contribuindo para projetos de software livre
 
Johnson 2012 12 points checklist pt
Johnson 2012 12 points checklist ptJohnson 2012 12 points checklist pt
Johnson 2012 12 points checklist pt
 
Representação Descritiva - RD - Catálogos e Bases de dados
Representação Descritiva - RD - Catálogos e Bases de dados Representação Descritiva - RD - Catálogos e Bases de dados
Representação Descritiva - RD - Catálogos e Bases de dados
 
Aula 8 bibliotecário 2.0
Aula 8   bibliotecário 2.0Aula 8   bibliotecário 2.0
Aula 8 bibliotecário 2.0
 
Php
PhpPhp
Php
 
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-laA Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
A Qualidade do Ecossistema Python - e o que podemos fazer para mante-la
 
Formacion en entorno presencial y virtual
Formacion en entorno presencial y virtualFormacion en entorno presencial y virtual
Formacion en entorno presencial y virtual
 
Tecnologias para bibliotecas
Tecnologias para bibliotecasTecnologias para bibliotecas
Tecnologias para bibliotecas
 
Bibliotecas 2.0
Bibliotecas 2.0Bibliotecas 2.0
Bibliotecas 2.0
 
Bibliotecas
BibliotecasBibliotecas
Bibliotecas
 
LIBER by DCLAB
LIBER by DCLABLIBER by DCLAB
LIBER by DCLAB
 
Pojeto biblioteca e software NAE
Pojeto biblioteca e software NAEPojeto biblioteca e software NAE
Pojeto biblioteca e software NAE
 
A P R E S E N T AÇÃ O U N I D A D E 02
A P R E S E N T AÇÃ O  U N I D A D E 02A P R E S E N T AÇÃ O  U N I D A D E 02
A P R E S E N T AÇÃ O U N I D A D E 02
 
Explorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open SourceExplorando O Potencial Das Linguagens De Programação Open Source
Explorando O Potencial Das Linguagens De Programação Open Source
 

Palestra codephant