Problemas com Classes PHP
06/02/2016
0
Boa noite pessoal.
Estou eu aqui de novo para solicitar uma ajuda divina.
OK sem embromar, eu a muitos baixei um sistema que era todo feito em PHP OO.
Na época os servidores eram na sua maioria em PHP 5.2.
Neste tal sistema(eyeOS para os interessados) tem uma classe KERNEL que nela existe a seguinte função:
Notem que a função getInstance solicita um parâmetro $class.
O problema esta exatamente ai, as outras classes que estendem KERNEL não passam este parâmetro e o PHP retorna um erro fatal.
Na época em que peguei este(até então open source) sistema ele funcionava e agora me retorna este erro.
Alguém sabe como resolver isto?
Estou eu aqui de novo para solicitar uma ajuda divina.
OK sem embromar, eu a muitos baixei um sistema que era todo feito em PHP OO.
Na época os servidores eram na sua maioria em PHP 5.2.
Neste tal sistema(eyeOS para os interessados) tem uma classe KERNEL que nela existe a seguinte função:
abstract class Kernel { public static function getInstance($class) { if (!isset(self::$Instances[$class])) { $object = new $class; self::$Instances[$class] = $object; } return self::$Instances[$class]; } }
Notem que a função getInstance solicita um parâmetro $class.
O problema esta exatamente ai, as outras classes que estendem KERNEL não passam este parâmetro e o PHP retorna um erro fatal.
class MMapGroup extends Kernel implements IMMap { public static function getInstance() { return parent::getInstance(); } }
Na época em que peguei este(até então open source) sistema ele funcionava e agora me retorna este erro.
Alguém sabe como resolver isto?
Luiz Régis
Curtir tópico
+ 0
Responder
Post mais votado
07/02/2016
Na época em que peguei este(até então open source) sistema ele funcionava e agora me retorna este erro.
O mais estranho era funcionar antes, porque agora está normal !
Para essa classe NÃO EXIBIR ERRO ela teria que ter o parâmetro "$class" com default = null, como abaixo:
abstract class Kernel { public static function getInstance($class=null) { if (!isset(self::$Instances[$class])) { $object = new $class; self::$Instances[$class] = $object; } return self::$Instances[$class]; } }
Mas mesmo assim não funcionaria porque ela segue o pattern Singleton e por isso precisa do nome da classe para verificar se existe um objeto dessa classe instanciado em memória!
William
Responder
Mais Posts
07/02/2016
Luiz Régis
Para essa classe NÃO EXIBIR ERRO ela teria que ter o parâmetro "$class" com default = null, como abaixo:
[...]
Mas mesmo assim não funcionaria porque ela segue o pattern Singleton e por isso precisa do nome da classe para verificar se existe um objeto dessa classe instanciado em memória!
[...]
Mas mesmo assim não funcionaria porque ela segue o pattern Singleton e por isso precisa do nome da classe para verificar se existe um objeto dessa classe instanciado em memória!
Pois é William, eu tentei isto e até passar a classe em si assim:
class MMapGroup extends Kernel implements IMMap { public static function getInstance(__CLASS__) { return parent::getInstance(); } }
Mas como eu previ o erro continuava.
Eu gostaria muito de tornar este código funcional, trata-se de um webOS. Mas não entendo o erro.
Responder
12/02/2016
Luiz Régis
Se alguém poder ajudar, achei no GitHub um upload do mesmo projeto.
eyeOS
Mas esta com o mesmo erro quando baixado e instalado.
A maioria das classes que acusam este erro estão na pasta eyeos/system/kernel/services/
Alguém me mande uma luz por favor...
eyeOS
Mas esta com o mesmo erro quando baixado e instalado.
A maioria das classes que acusam este erro estão na pasta eyeos/system/kernel/services/
Alguém me mande uma luz por favor...
Responder
Clique aqui para fazer login e interagir na Comunidade :)