Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Dae galera beleza? eu tenho um problema sério, possuo um cadastro de empresas com bastante dados, e isso vai me acarretar objetos grandes tipo com array de telefone e endereços.
$empresa->getTelefone().
e o telefone eh um array de objetos telefone, oq teria ainda q ler com um foreach e tals.
então queria saber da velocidade disso, se tem jeitos melhores de lidar com essas coisas?
por enquanto sei fazer desse jeito, mas se existir um jeito mais eficaz que não vá acarretar em lentidão agradeço.
flw!
Então vamo la
tenho 1 objeto empresa.
Empresa com dados normais de uma empresa
empresa->nome()
empresa->endereço()
empresa->Telefone() = array telefone();
empresa->categoria()
telefone eh tambem um objeto..entao "empresa->Telefone()" eh um array de objetos de telefone.
e fora telefone tem mais estruturas iguais a ele, tipo serviços e tals. q tb são um array de objetos em empresa.
vou usar para exibir uma lista de empresas pro usuario organizados por categoria pro usuário. e tambem exibir empresas individualmente.
Ta em desenvolvimento por isso nao tenho nada mais solido q isso.
mas antes de errar revolvi vim perguntar.
flw
Nao entendi como voce faz o load dos objetos, mas acredito que de qualquer forma conhecer o patern Lazy Initialization te ajudaria, e talvez ate´ seja o que voce esta procurando.
Se eu pesquisar por Lazy Initialization eu acho bastante coisa?
to perguntando ao inves de pesquisar pq to indo dormi ja, sao 3:48 da manha e nao consigo nem ler
uheauhea
flw
>
Se eu pesquisar por Lazy Initialization eu acho bastante coisa?
Com certeza você irá encontrar bastante coisa sobre Lazzy initialization, porém, acredito que a "inicialização atrasada" só irá prejudicar o desempenho de sua aplicação se o nível de aninhamento for muito grande.
Isso porque para cada inicialização uma nova entrada na pilha de execução será adicionada uma vez que é necessário uma chamada à um método de sua classe.
Usando propriedades:
<?php
class Empresa1 {
public $nome;
public $endereco;
public $telefone;
public $categoria;
public function __construct(){
$this->nome = "";
$this->endereco = "";
$this->telefone = array();
$this->categoria = 0;
}
}
$teste1 = new Empresa1();
$teste1->nome = "Emprea Ltda.";
$teste1->endereco = "Rua dos bobos, 0";
$teste1->telefone[] = "(00) 1234-5678";
$teste1->telefone[] = "(00) 1111-2222";
$teste1->categoria = 1;
Usando inicialização atrasada:
<?php
class Empresa2 {
private $dados;
public function __construct(){
$this->dados = array();
}
public function __set( $name , $value ){
switch ( $name ){
case "telefone" :
$this->dados[ "telefone" ][] = $value;
break;
default:
$this->$name = $value;
}
}
public function __get( $name ){
$ret = null;
if ( isset( $this->dados[ $name ] ) ){
$ret = $this->dados[ $name ];
}
return( $ret );
}
}
$teste2 = new Empresa2();
$teste2->nome = "Emprea Ltda.";
$teste2->endereco = "Rua dos bobos, 0";
$teste2->telefone[] = "(00) 1234-5678";
$teste2->telefone[] = "(00) 1111-2222";
$teste2->categoria = 2;
E o perfil de execução para cada caso:
Empresa1 (com propriedades)
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.visualcom.com.br/imagens/Empresa1.jpg&key=a85d18be8861a1f56c46f2acea31a8cf786d3c023edb73ebce90bb0beca1558b" alt="Imagem Postada" class="bbc_img">
Empresa2 (Lazzy Initialization)
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.visualcom.com.br/imagens/Empresa2.jpg&key=03a0025b38ed3eab4cd03091747751f37bacbb198f4a49cf0902aa6bbf82e8dd" alt="Imagem Postada" class="bbc_img">
Pow velho bacana sua dedicação pra me ajudar, e percebi como ficou, vou acabar testando dos 2 jeitos e usando esse programa de estatisticas ai, você poderia me passar qual eh? para eu dar um testada aqui e ver como anda minha aplicação?
vlw e flww !
>
Pow velho bacana sua dedicação pra me ajudar, e percebi como ficou, vou acabar testando dos 2 jeitos e usando esse programa de estatisticas ai, você poderia me passar qual eh? para eu dar um testada aqui e ver como anda minha aplicação?
vlw e flww !
Zend Studio é o nome da ferramenta, não é muito barata não mas vale o que custa. Além do profiler tem o debugger integrado. Porém o nome Zend dispensa apresentação.
;)
conheço Zend Studio cara, só não mexi mtu...
mas beleza..vou ver se saio atrás ai pra ver como fica.
flw
explique melhor a estrutura de dados e explique o que deseja fazer com os dados.