Ben sadece joomla otomatik yükleyici ile çakışan bulmak için __ autoload kullanmak için tüm kodumu değişti. Ben kullanıcılara vb kayıt bazı durumlarda joomla ile benim app entegre
Aparently birçok autoloaders verir I () spl_autoload_register bulundu.
Ben ne yapmalıyım?
update: Bu joomla ne olduğunu
Yükler Bu dosya / library / loader.php gelen
function __autoload($class)
{
if(JLoader::load($class)) {
return true;
}
return false;
}
Update 2:
Tamam, ben Joomla kitaplığı yüklenemedi hemen sonra ararım
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
//autoloader so that it does not interfere with mine
spl_autoload_register('__autoload');
Bu benim özdevinimli_yükle gibi görünüyor:
<?php
//IMPORT
function myAutoload($class_name)
{
$path = str_replace('_', '/', $class_name);
include $path . '.php';
}
?>
spl_autoload_register('myAutoload',false,true);
Mine ilk çağrılır ve joomla bir saniye, ancak app hala Joomla sınıfları bulamıyorum.
Update 3:
Çalıştırdıktan sonra:
echo "PRE: myAutoload:" . spl_autoload_functions() . "<br />";
spl_autoload_register('myAutoload',false,true);
echo "POST: myAutoload:" . spl_autoload_functions() . "<br />";
ve
echo "PRE: JoomlaAutoLoad:" . spl_autoload_functions() . "<br />";
//autoloader so that it does not interfere with mine
spl_autoload_register('__autoload');
echo "POST: JoomlaAutoLoad:" . spl_autoload_functions() . "<br />";
My output was: PRE: myAutoload: POST: myAutoload:Array
UPDATE 4:
Ben bu Joomla ithalat değiştirmek zorunda kaldı:
require_once ( JPATH_BASE .DS.'libraries'.DS.'loader.php' );
echo "PRE: JoomlaAutoLoad:" . var_dump(spl_autoload_functions()) . "<br />";
//autoloader so that it does not interfere with mine
spl_autoload_register('__autoload');
echo "POST: JoomlaAutoLoad:" . var_dump(spl_autoload_functions()) . "<br />";
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
Burada çıkış
PRE: myAutoload:
array
0 => string 'myAutoload' (length=10)
POST: myAutoload:
array
0 => string 'myAutoload' (length=10)
PRE: JoomlaAutoLoad:
array
0 => string 'myAutoload' (length=10)
1 => string '__autoload' (length=10)
POST: JoomlaAutoLoad:
Ben çalıştım ben bu Joomla dosyaları include sonra
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
Spl_autoload_functions () hiçbir şey döndürür, böylece her nasılsa joomla o kadar doldurma edilir.