Palestra codephant

Post on 03-Jul-2015

144 views 1 download

transcript

Bibliotecas PHPPor Jefersson Nathan

www.princexml.com
Prince - Non-commercial License
This document was created with Prince, a great way of getting web content onto paper.

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

// Thanks@malukenho

malukenho@phpse.net

www.jefersson.com.br

39