Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Criei minha classe singleton no PHP (igual esta http://pt.wikipedia.org/wiki/Singleton#Em_PHP) só que eu acabei caindo em um problema.
Se eu acessar minha página pela primeira vez, ele cria o singleton e guarda na variável estática, tudo certo até aqui.
Agora quando eu acesso pela segunda vez, ele cria novamente o singleton, não deveria, porque já foi criado.
O que eu pude perceber é que é criado um novo Singleton para cada request, sendo que o correto seria criar apenas uma vez (assim como funciona no C# e Java), afinal, este é o objetivo do Singleton, uma instância apenas.
Alguém sabe como implementar o Singleton no PHP corretamente?
Obrigado.
Hmm, desses links eu tiro dois itens importantes:
1. Uso do caracter '&' na qual desconheço em PHP, logo não sei para que serve e se resolve meu caso.
2. Uso do array $GLOBALS, sabia da existência mas nunca usei, vou tentar depois.
Valeu!
>
1. Uso do caracter '&' na qual desconheço em PHP, logo não sei para que serve e se resolve meu caso.
Cuidado.
veja:
>
Desde o PHP 5, new retorna referência automaticamente, então usar =& neste contexto é obsoleto e produz mensagem de nível E_STRICT.
Fonte: http://www.php.net/manual/pt_BR/language.references.whatdo.php
>
2. Uso do array $GLOBALS, sabia da existência mas nunca usei, vou tentar depois.
Isso equivale a fazer isto no início da função, para tornar uma variável externa a ela acessível no escopo local
function funcao()
{
global $nome; // supondo que $nome foi criado fora da função
}
deem uma olhada nos links amigo =] acho que vai ajuda ^^
http://www.phpeveryday.com/articles/OOP-Pattern-Registry-Introduction-Registry-Pattern-P240.html
http://www.phpeveryday.com/articles/OOP-Pattern-Singleton-Using-One-Instance-P239.html
valwww