quarta-feira, 8 de junho de 2011

Silêncio na biblioteca : Como e onde colocar suas próprias bibliotecas no Zend Framework

O Zend têm coisa pra caramba em sua biblioteca. Sempre que puder, usae-as, não fique reinventando a roda. Mas quando o Zend não têm o que precisamos, devemos criar nossas próprias bibliotecas.

E surpreendentemente, fazer sua prórpria biblioteca no Zend é moleza.

Apenas crie na pasta '/library' de sua aplicação uma pasta com suas próprias classes.
Pro exemplo, crio uma pasta

/library/Minhabiblioteca/Minhasclasses1

e

/library/Minhabiblioteca/Minhasclasses2

E sempre escreva a primeira letra de qualquer pasta em '/library' em maiúscula, esse é o padrão do Zend.
Vamos colocar uma classe em cada pasta

/library/Minhabiblioteca/Minhasclasses1/Umaclasse1.php

e

/library/Minhabiblioteca/Minhasclasses2/Umaclasse2.php

Agora, em cada classe, no cabeçalho de declaração de classes, você coloca

class Minhabiblioteca_Minhasclasses1_Umaclasse1 {

...

}

Percebeu o esquema ? Na declaração da classe, você coloca o nome das pastas, sempre com a primeira letra do nome em maiusculo, unidas por underline, e finaliznado com o nome da classe.

Agora, no arquivo de configuração 'application.ini' coloque a linha

autoloaderNamespaces[] = "Minhabiblioteca"

para sua biblioteca ser adicionada ao PATH da aplicação.

Crie seus métodos e objetos, e poderá usar em qualquer lugar do Zend, basta pra isso você chamar em qualquer local que você queira com

$obj = new Minhabiblioteca_Minhasclasses1_Umaclasse1()

e estarão disponíveis seus métodos e objetos que você criou pra usar ali.
Você pode até mesmo extender alguma classe do Zend, por exemplo, Zend_Front_Controller

class Minhabiblioteca_Minhasclasses1_Umaclasse1 extends Zend_Front_Controller {

...

}

e qualquer outra classe que você precisar usar do Zend.

Acreditem, eu fiquei surpreso de não precisar declara nada no Bootstrap, no config ou no 'index.php' pra fazer minha libs funcionarem no Zend.

Espero que a felicidade agora bata na porta de vocês.


Fonte: http://framework.zend.com/manual/1.11/en/performance.classloading.html


Um comentário: