Escrever suas próprias bibliotecas customizadas é essencial quando se faz certos tipos de aplicação.
Mas o bom de orientação a objetos é que podemos reutilizar as variáveis e métodos já existentes em outras classes, e no caso do Zend, é preferível que utilizemos os métodos já definidos nas classes de sua biblioteca, ou ainda, usar alguma classe de controller, model ou helper que você já fez, porque afinal gastar tempo e espaço ( ainda que seja ridiculamente pequeno ) no HD quando podemos utilizá-los não ?
Pois bem, aqui temos dois modos de se reutilizar uma classe criada na estrutura do Zend.
A primeira é a clássica "extends", o mais comum quando se trabalha com objetos:
Dai já pode utilizar os métodos e variáveis da classe desejada como se fosse de sua classe. Bem simples.
Um outro modo muito legal que descobri também para utilizar qualquer biblioteca sem precisar extender é esse:
1 - Declare o construtor de sua classe
2 - Dentro do construtor, chama explicitamente a classe que quer usar usando 'require_once'
3 - Crie uma variável na sua classe para criar o objeto da classe desejada:
4 - Agora, inicializa o objeto da classe desejada usando o método 'init':
E pronto, já pode usar em sua biblioteca customizada qualquer classe que desejar sem precisar extender nada. Achei legal assim, porque você pode usar mais de uma classe, o que extendendo limita a somente uma, e de certo modo, deixa sua classe mais "pura".
Referências: http://framework.zend.com/manual/1.11/en/performance.classloading.html
Mas o bom de orientação a objetos é que podemos reutilizar as variáveis e métodos já existentes em outras classes, e no caso do Zend, é preferível que utilizemos os métodos já definidos nas classes de sua biblioteca, ou ainda, usar alguma classe de controller, model ou helper que você já fez, porque afinal gastar tempo e espaço ( ainda que seja ridiculamente pequeno ) no HD quando podemos utilizá-los não ?
Pois bem, aqui temos dois modos de se reutilizar uma classe criada na estrutura do Zend.
A primeira é a clássica "extends", o mais comum quando se trabalha com objetos:
class Mylib_Minhaclasse extends ClasseDesejada { ... }
Dai já pode utilizar os métodos e variáveis da classe desejada como se fosse de sua classe. Bem simples.
Um outro modo muito legal que descobri também para utilizar qualquer biblioteca sem precisar extender é esse:
1 - Declare o construtor de sua classe
class Mylib_Minhaclasse { public function Mylib_Minhaclasse(){ } ... }
2 - Dentro do construtor, chama explicitamente a classe que quer usar usando 'require_once'
class Mylib_Minhaclasse { public function Mylib_Minhaclasse(){ require_once( APPLICATION_PATH."/caminho_pra_classe_desejada/ClasseDesejada.php"); } ... }
3 - Crie uma variável na sua classe para criar o objeto da classe desejada:
class Mylib_Minhaclasse { protected $obj = null; public function Mylib_Minhaclasse(){ require_once( APPLICATION_PATH."/caminho_pra_classe_desejada/ClasseDesejada.php"); $obj = new ClasseDesejada.php } ... }
4 - Agora, inicializa o objeto da classe desejada usando o método 'init':
class Mylib_Minhaclasse { protected $obj = null; public init(){ $this->Mylib_Minhaclasse(); } public function Mylib_Minhaclasse(){ require_once( APPLICATION_PATH."/caminho_pra_classe_desejada/ClasseDesejada.php"); $obj = new ClasseDesejada.php } ... }
E pronto, já pode usar em sua biblioteca customizada qualquer classe que desejar sem precisar extender nada. Achei legal assim, porque você pode usar mais de uma classe, o que extendendo limita a somente uma, e de certo modo, deixa sua classe mais "pura".
Referências: http://framework.zend.com/manual/1.11/en/performance.classloading.html
Comentários
Postar um comentário