O documento discute as novas funcionalidades introduzidas no PHP 5.3, incluindo namespaces, closures, late static binding e a estrutura SPL. Ele também explica como criar arquivos Phar para distribuir aplicações PHP em um único arquivo.
Um breve histórico
PHP5.0 implementou um novo modelo de
objetos
PHP 5.3 nos presenteou com: namespaces,
clousures, late static binding, etc...
PHP 6 ?...
4.
Por que migrarpara o PHP 5.3?
Mais rápido
Melhor gerenciamento de memória
Bug fixes
Zend Framework 2.0, Symfony 2.0, Doctrine
2.0 vão requerer o PHP 5.3
5.
Definição de Classes
<?php
namespaceSystemControl;
class UserController {}
$uc = new SystemControlUserController();
$uc2 = new UserController(); //mesma classe da
declaração anterior
Phar ( PHPArchive )
Distribuindo aplicações em um único arquivo
25.
Criando arquivos Phar
<?php
$phar= new Phar(
'/projeto/app.phar', //caminho para o arquivo
0, //parâmetros
'app.phar' //Alias para referências
);
$phar->startBuffering();
Stub
O arquivo Stubé um pedaço de código que
será executado quando o arquivo Phar for
carregado. Para definir o pedaço de código que
será executado ao carregar o arquivo Phar
pode-se usar o método setStub que aceita o
código em forma de string.
Stub
O código deveterminar com a função
__HALT_COMPILER().
O método statico Phar::mapPhar() lê e inicializa
o arquivo Phar a ser executado.
O streammer phar:// é usado para referenciar
os arquivos que estão dento do pacote Phar.
No exemplo anterior ao carregar o arquivo
app.phar será executado o arquivo index.php.
32.
Stub
Caso não existanenhum procedimento
especial ao carregar o arquivo Phar, e você
deseja simplesmente executar um arquivo php
diretamente, use o método createDefaultStub.
É só passá-lo como parâmetro para o método
setStub.
__callStatic()
<?php
class Foo{
public staticfunction __callStatic( $name, $args ){
return $name . ' foi chamada estaticamente';
}
}
echo Foo::bar(); //bar foi chamada
//estaticamente