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