__autoload afet - Joomla ile çatışmalar

0 Cevap php

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.

0 Cevap