Inserção de classes de modo dinâmico (method_exists)
Fala galera!
Estou criando um CMS particular, e gostaria de automatizar o máximo possível a manutenção de um cliente para outro. Através de um código simples, consegui com que sejam incluidos os arquivos de classe necessários para o funcionamento do sistema:
// * Busca todos os arquivos da pasta de classes
$diretorioClasse = 'comum/class';
$arrayClasses = array();
if ($handle = opendir($diretorioClasse))
{
while (false !== ($file = readdir($handle)))
{
if(strpos($file,".class.php"))
{
include($diretorioClasse."/".$file);
$arrayClasses[] = str_replace(".class.php","",$file);
}
}
closedir($handle);
}
Até aqui, beleza. Como podem ver, gerei um array com o nome das classes para que eu possa utilizá-los para gerar um menu (Algumas classes possuem menu e outras não).
Porém, estou tentando agora utilizar esse array para chamar alguns métodos nas classes e não estou conseguindo, podem me ajudar?
for ($i = 0; $i < count($arrayClasses); $i++)
{
$objSideBar.$arrayClasses[$i] = new $arrayClasses[$i]();
if(method_exists($objSideBar.$arrayClasses[$i],"MontaMenu"))
{
$objSideBar.$arrayClasses[$i]->MontaMenu();
}
}
O erro que está dando:
>
-
Catchable fatal error: Object of class Backup could not be converted to string in/Applications/XAMPP/xamppfiles/htdocs/sistema/sidebar.php on line 11
PS: Backup é o nome de uma das classes. Como é a primeira que é vem do array, está dando problema nela.
PS2: O array está imprimindo:
>
- Array ( [0] => Backup [1] => Email [2] => Log [3] => MySQL [4] => Secao [5] => Sessao [6] => Usuario )
Discussão (12)
Carregando comentários...