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);