Upload
jefersson-nathan
View
151
Download
1
Embed Size (px)
Citation preview
Bibliotecas PHPPor Jefersson Nathan
Jefersson Nathanmalukenho 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?
Dicio1. ...
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 nophp
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 bibliotecasrequire "vendor/autoload.php";
$loader = require "vendor/autoload.php";
$loader->add('PHPSergipe\\codePhant\\', __DIR__);
01.
02.
03.
04.
18
composer.lockArquivo gerado depois que suas dependências são instaladas.
É altamente recomendável sua distribuição.“19
PackagistPackagist é 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 bibliotecaSigam as PSRs
22
Bibliotecas
23
24
Respect\Validation{
"require": {
"respect/validation": "dev-develop"
}
}
01.
02.
03.
04.
05.
25
Respect\Validation<?php
use Respect\Validation\Validator as v;
$number = 123;
v::numeric()->validate($number); //true
https://github.com/Respect/Validation
01.
02.
03.
04.
05.
26
Respect\Validation$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
https://github.com/Respect/Validation
01.
02.
03.
04.
05.
06.
07.
08.
27
Respect\Templateuse Respect\Template\Html;
use Respect\Template\HtmlElement 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
Respect\Template$template['#pageHeader h1'] = 'codePhant\PHPSergipe';
$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
Respect\Template
echo $template->render();
01.
02.
03.
30
filp\whoops{
"require": {
"filp/whoops": "1.*"
}
}
01.
02.
03.
04.
05.
32
filp\whoops$app->register(
new Whoops\Provider\Silex\WhoopsServiceProvider
);
01.
02.
03.
33
filp\whoopsif ($app['debug']) {
$app->register(
new Whoops\Provider\Silex\WhoopsServiceProvider
);
}
01.
02.
03.
04.
05.
34
MENTORING
Augusto Pascutti
38