Vejam a foto:
O primeiro array vêm via HTTP POST, o segundo é um cache de arquivo depois de desserializado.
Isso faz parte de um sistema de atualizações onde é enviado para o meu servidor a lista de arquivos que uma instalação do meu sistema tem e é comparada com outra lista, pré-existente.
Combinando em nomes de arquivo, mas sendo diferente em checksum, entra para lista final, siginificando que deve haver atualização daquele arquivo.
Eu fiz dois foreach's aninhados, cada um sobre um dos arrays, com if's aninhados que verificam o valor das chaves e incluem em outro array, para ser retornado, se houver diferença.
Mas são arrays bem grandes (475 itens para ser exato) e fazer loop dentro de loop acaba ficando muito lento. Ainda mais que é um serviço, se ficar lento minha banda vai pra cucuia.
Como eu faço para comparar? Anteriormente os índices filepaths eram diferentes a nível de 3 diretórios. Mexi daqui e mexi dali até fazer o filepath do cache ser igual ao vindo via HTTP POST, mas ainda não consigo comparar por ser multimensional.
A minha tentativa deu certo? Deu. Mas ficou inflexível e, além de comparar essas diferenças, preciso reutilizar o código para obter também os novos arquivos que eu crio os quais uma atualização possa depender. Assim evito a cada pequena correção, obrigar o usuário a baixar um release de mais ou menos 4MB.
- Fórum WMO
- → Viewing Profile: Tópicos: Bruno Augusto
Community Stats
- Group Usuários
- Active Posts 1968
- Profile Views 4419
- Member Title ∙•● Restarting... ●•∙
- Age Age Unknown
- Birthday Birthday Unknown
-
Sexo
Não informado
-
Localidade
Itajubá
5
Neutral
User Tools
Friends
Bruno Augusto hasn't added any friends yet.
Latest Visitors
Topics I've Started
Comparação De Arrays Multidimensionais
31/01/2010, 12:52
Obter Instância Singleton Dinâmicamente...
08/04/2009, 15:06
Pessoal,
Implementações de Singleton têm aos milhares por aí e uma das mais simples é essa:
Daí eu fui retomar um arquivo aqui só para não perder o costume e percebi que eu estava usando Singleton de um lado e instância"comuns" (com new) de outro.
Não que não funcionasse, mas que queria tentar de outro jeito.
Tirando as verificações eu fazia:
Daí, fui passar para Singleton por purafrescura vontade de aprender
Adicionei aquele bloco na classe (que o nome passou por GET) e troquei a linha acima por:
Pergunta: Essa implementação de Singleton não permite usar variáveis para obter a instância?
Se não, como faço então?
Implementações de Singleton têm aos milhares por aí e uma das mais simples é essa:
public static function init() { if ( NULL === self :: $instance ) { self :: $instance = new self(); } return self :: $instance; }Perfeito.
Daí eu fui retomar um arquivo aqui só para não perder o costume e percebi que eu estava usando Singleton de um lado e instância"comuns" (com new) de outro.
Não que não funcionasse, mas que queria tentar de outro jeito.
Tirando as verificações eu fazia:
$var = new $_GET['var'];Onde o nome da classe passa pela URL em querystring.
Daí, fui passar para Singleton por pura
Adicionei aquele bloco na classe (que o nome passou por GET) e troquei a linha acima por:
$var = $_GET['var'] :: init();E resulta parse error. Se eu tiro a variável e passo a palavra que passa por GET diretamente, funciona.
Pergunta: Essa implementação de Singleton não permite usar variáveis para obter a instância?
Se não, como faço então?
- Fórum WMO
- → Viewing Profile: Tópicos: Bruno Augusto
- Privacy Policy
- Regras ·