如何创建/使用基于名称空间的PHP自动加载器来加载类,常量和函数?

崇高提升

我有以下自动装带器:

spl_autoload_register(function($class) {
    $class = ltrim($class, '\\');
    $filename  = '';
    $namespace = '';

    if ($last_ns_pos = strripos($class, '\\')) {
        $namespace = strtolower(substr($class, 0, $last_ns_pos));
        $class = substr($class, $last_ns_pos + 1);
        $filename  = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
    }

    $filename .= str_replace('_', DIRECTORY_SEPARATOR, $class) . '.php';

    require $filename;
});

如果我想加载MyApp\Library\ClassOne,则可以正常运行,因为该类位于中/MyApp/Library/ClassOne.php这实现了名称空间的一种功能; 不过,我希望能够自动加载的常量和函数的文件(像MyApp\ConstantsMyApp\Functions位于MyApp\Constants.phpMyApp\Functions.php,分别)。

斯普德利

当前的PHP(从PHP 5.5开始)不支持自动加载类以外的任何东西。

当前正在讨论自动加载函数和常量的功能,该功能可能会添加到下一个版本(即PHP 5.6)中,但有关此功能的决定尚未最终确定。

有关更多详细信息,请参见https://wiki.php.net/rfc/autofunc

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何创建/使用基于名称空间的PHP自动加载器来加载类,常量和函数?

来自分类Dev

在Symfony 1.4中使用名称空间自动加载类

来自分类Dev

具有名称空间的PHP自动加载器

来自分类Dev

PSR-4:自动加载器(composer)和扩展名称空间,确保后备php

来自分类Dev

(codeigniter / Neo4j)PHP:名称空间和自动加载器

来自分类Dev

PHP-名称空间和自动加载问题

来自分类Dev

PHP名称空间和自动加载不起作用

来自分类Dev

SPL自动加载和名称空间

来自分类Dev

动态加载名称空间和类

来自分类Dev

为什么要在自动加载器函数上使用自动加载器类?

来自分类Dev

如何使用自动加载器加载PHP配置文件

来自分类Dev

是否可以通过作曲家的自动加载器向普通类库添加名称空间?

来自分类Dev

是否可以通过作曲家的自动加载器向普通类库添加名称空间?

来自分类Dev

Yii自动加载名称空间

来自分类Dev

PHPUnit无法通过名称空间自动加载找到类

来自分类Dev

PHP:如何在使用自动加载器时获取所有类

来自分类Dev

如何使用变量的类名访问PHP中带有名称空间的类常量?

来自分类Dev

无法从 PHP 中的命名空间类调用全局类。使用 Composer 的自动加载

来自分类Dev

如何在类名称空间中使用常量作为数组和模板参数?

来自分类Dev

使用名称空间时,PHP spl_autoload_register无法使用require范围加载类

来自分类Dev

如何使用Composer自动加载Phalcon类?

来自分类Dev

如何调试 PHP Composer 自动加载器

来自分类Dev

从不同的文件和目录自动加载类和函数

来自分类Dev

PHP - 无需 Composer 的自动加载和命名空间

来自分类Dev

如何检查自动加载是否只加载使用过的类?

来自分类Dev

Composer不会更新自动加载名称空间

来自分类Dev

Composer不会更新自动加载名称空间

来自分类Dev

具有名称空间的PHP自动加载不会加载文件

来自分类Dev

如何使用psr-4自动加载器在命名空间项目中添加Twig

Related 相关文章

  1. 1

    如何创建/使用基于名称空间的PHP自动加载器来加载类,常量和函数?

  2. 2

    在Symfony 1.4中使用名称空间自动加载类

  3. 3

    具有名称空间的PHP自动加载器

  4. 4

    PSR-4:自动加载器(composer)和扩展名称空间,确保后备php

  5. 5

    (codeigniter / Neo4j)PHP:名称空间和自动加载器

  6. 6

    PHP-名称空间和自动加载问题

  7. 7

    PHP名称空间和自动加载不起作用

  8. 8

    SPL自动加载和名称空间

  9. 9

    动态加载名称空间和类

  10. 10

    为什么要在自动加载器函数上使用自动加载器类?

  11. 11

    如何使用自动加载器加载PHP配置文件

  12. 12

    是否可以通过作曲家的自动加载器向普通类库添加名称空间?

  13. 13

    是否可以通过作曲家的自动加载器向普通类库添加名称空间?

  14. 14

    Yii自动加载名称空间

  15. 15

    PHPUnit无法通过名称空间自动加载找到类

  16. 16

    PHP:如何在使用自动加载器时获取所有类

  17. 17

    如何使用变量的类名访问PHP中带有名称空间的类常量?

  18. 18

    无法从 PHP 中的命名空间类调用全局类。使用 Composer 的自动加载

  19. 19

    如何在类名称空间中使用常量作为数组和模板参数?

  20. 20

    使用名称空间时,PHP spl_autoload_register无法使用require范围加载类

  21. 21

    如何使用Composer自动加载Phalcon类?

  22. 22

    如何调试 PHP Composer 自动加载器

  23. 23

    从不同的文件和目录自动加载类和函数

  24. 24

    PHP - 无需 Composer 的自动加载和命名空间

  25. 25

    如何检查自动加载是否只加载使用过的类?

  26. 26

    Composer不会更新自动加载名称空间

  27. 27

    Composer不会更新自动加载名称空间

  28. 28

    具有名称空间的PHP自动加载不会加载文件

  29. 29

    如何使用psr-4自动加载器在命名空间项目中添加Twig

热门标签

归档