Namespaces PHP Autloading

0 Cevap php

Benim ad autoloading ile hafif bir sorun vardı. Burada PHP kılavuzda gösterildiği gibi: http://us.php.net/manual/en/language.namespaces.rules.php tam bir nitelikli ad, örneğin ile autoload isim alanı işlevleri gerekir \ Tutkal \ common \ is_email ().

Şey ben bir işlev spl_autoload_register (array ($ ithalat, "yük")) sahip olduğu; Ben denemek ve ilk ad gelen çağrı \ tutkal \ common \ is_email () o özdevinimli_yükle fonksiyonu geçmek olmaz ama yeni is_email kullanırken () zaman ilk ad içinde ancak (bir sınıfın bağlamında) o olacak. Ben manuel ben tam isimleri özdevinimli_yükle yapabilirsiniz ama ben yapamam diyor o alamadım:.

İşte benim kod:

namespace glue;

require_once 'import.php';

use glue\import as import;
use glue\core\router as router;

$import = new import();

spl_autoload_register(array($import, "load"));

/** Works and echos glue\router **/
$router = new router();

/** Don't do nothing **/
$cheese = \glue\common\is_email($email);

Ben aynı zamanda bu kod çalıştı:

namespace glue;

require_once 'import.php';

use glue\import as import;
use glue\core\router as router;
use glue\common;

$import = new import();

spl_autoload_register(array($import, "load"));

/** Works and echos glue\router **/
$router = new router();

/** Don't do nothing **/
$cheese = common\is_email($email);

ve nihayet bu kodu:

namespace glue;

require_once 'import.php';

use glue\import as import;
use glue\core\router as router;
use glue\common\is_email as F;

$import = new import();

spl_autoload_register(array($import, "load"));

/** Works and echos glue\router **/
$router = new router();

/** Don't do nothing **/
$cheese = F($email);

0 Cevap