Посмотрите, есть ли у вас __autoload ($ class) и измените его на использование метода spl_autoload_register ().Пример:
function __autoload($class)
{
if (file_exists(APPPATH . 'core/' . $class .EXT)) {
require_once APPPATH . 'core/' . $class . EXT;
} else {
if (file_exists(APPPATH . 'libraries/' . $class . EXT)) {
require_once APPPATH . 'libraries/' . $class . EXT;
}
}
}
будет изменено на:
function CIautoload($class)
{
if (file_exists(APPPATH . 'core/' . $class .EXT)) {
require_once APPPATH . 'core/' . $class . EXT;
} else {
if (file_exists(APPPATH . 'libraries/' . $class . EXT)) {
require_once APPPATH . 'libraries/' . $class . EXT;
}
}
}
spl_autoload_register('CIautoload');
Таким образом, вы сможете использовать все возможности PHP 5.3 (и у вас не будет проблем с композиторомавтозагрузки и CI,; D)
Объяснение
Если через некоторое время, используя PHP 5.2, вы начнете использовать PHP> 5.3 и все методы кодирования OO, вы начнете использовать spl_autoload_register
,С CI, в проектах с PHP 5.2, поскольку вы не могли использовать spl_autoload_register
, люди использовали известный хак для автозагрузки классов, используя function __autoload($class)
, который они обычно записывали в файле config.php.Проблема в том, что когда вы смешиваете и то и другое, функция spl_autoload_register
переопределяет ваш класс __autoload
, и возникает ошибка, о которой спрашивается вопрос.