O cara utiliza variaveis dentro do escopo da classe, tanto como os getters & setters dela.
Problema (eu acho) que a classe tem métodos de acesso ao banco de dados tambem, que fazem selectcs, updates,inserts,deletes, etc.
Quando ele quer passar o objeto da classe, ele simplesmente reinstância a classe:
ex:
<?php class Foo { private $bar; public function __construct($var = null) { $this->bar = $var; } public static function funcaoQueFazAlgo($var) { return new Foo($var); } public function getBar() {} public function setBar() {} } ?>
Eu fico pensando o que ele teve na cabeça para fazer isso, pois quando ele retorna o objeto da classe instanciado, ele dá acesso as funcoes da classe! Eu posso muito bem chamar dentro do template (Smarty) as funcoes de insert,update,select, etc.
Fico imaginando se alguem descobre isso, pode fazer a festa, acho uma tremenda falta de segurança o.o'
Geralmente eu uso o padrão Java Beans (uma classe Form, uma Action e uma Classe com as funcoes importantes). E retorno sempre o Form, que só tem as variáveis mesmo.
Mas não posso mudar o escopo do projeto né
Queria saber se tem alguma maneira de eu assegurar que quando eu instanciar a classe no retorno, nao dar acesso as funções importantes.
[]'s
Edição feita por: savior, 12/09/2007, 11:29.
alterei o nome da classe pra Maiúsculo