Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tentei, tentei, mas o título não ficou bom. :P
Ao se trabalhar com volume de dados, a lógica é armazená-los num banco de dados e, quando necessário, requisitar essas informações e trabalhar com elas.
Mas... E se determinado volume de dados (consideremos um array com mais de 400 índices) precisarem ser armazenados em algum lugar, independente de um banco de dados, para servir, por exemplo, como parâmetros de uma comparação. Onde armazenar?
Normalmente, mesmo que grande, tal lista faz parte da classe em que se trabalha. Mas e se essa mesma lista precisar ser usada em outra classe?
Você apagou os códigos? Na hora que os vi não dava pra responder.
Mas assim, não pecisarei alterar essa informação, ela é constante. Vou usá-la para validar um determinado texto de determinado valor de entrada.
Porém, existem outras classes as quais validam, cada uma, uma informação diferente. Mas no meio dessas informações diferentes pode ser que haja a mesma informação validada pela primeira classe. Logo, um ou mais desses objetos precisariam também dessa grande matriz de dados.
>
>
Eu te chamaria de burro : P , você estaria duplicando o problema, ao mesmo tempo alocando memória desnecessária
Sei disso. Por isso foi uma frase afirmativa, e não interrogativa :thumbsup:
Por isso falei, você vai ter um objeto central, no qual vai distribuir a informação pra quem necessita.
<?php
abstract class Storage {
/**
* ...
*/
}Então, esse seu pseudo-código, foi uma das possibilidades que eu citei, que seria uma classe abstrata, porém eu havia dito que ela deveria ter uma propriedade e método estáticos para obter essa lista.
O que ainda não me convenceu foi se é certo isso.
Eu não vejo outra maneira, na propriedade estática pelo menos, você não vai ter que ficar definindo o array na propriedade a cada atualização / requisição de página.
<?php
abstract class Storage {
/**
* Array de dados
* @var Array $Storage
* @access Private
*/
static private $Storage = Array();
/**
* Adiciona um elemento no array de dados
* @param Mixed $index
* @param Mixed $value
*/
static public function attach( $index , $value ) {
self::$Storage[ $index ] = $value;
}
/**
* Recupera o array de dados
* @return Array
*/
static public function getStorage(){
return ( Array ) self::$Storage;
}
/**
* ....
*/
}
Storage::attach( 'nome' , '?' );
print_r( Storage::getStorage() );Então tá, valeu! :thumbsup:
>
Eu te chamaria de burro : P , você estaria duplicando o problema, ao mesmo tempo alocando memória desnecessária
>
A Idéia e criar uma classe onde vai ser o 'Model' que acopla esses dados, afinal, você não é obrigado a distribuir essa informação para todas as classes, para isso, você cria métodos na mesma 'Model', e usa na classe que precisar de tal informação, alterar tal informação, remover tal informação, adicionar nova informação .. seguindo um padrão singleton, ou algo parecido.