如何使用命名空间而不是包含(" file.php")

时间:2017-02-11 11:19:07

标签: php php-5.6

以下是我的文件夹结构

--project
    |_____classes
             |_____config.php
             |_____classes.php
    |_____project
             |_____index.php
             |_____dashboard.php

根据文件夹结构,我在config.php&中拥有所有数据库配置。我把它扩展到了classes.php和更多的类中。

现在当我在项目文件夹的dashboard.php文件中使用它时,我必须做这样的事情includes("../classes/config.php");

我已经在PHP中阅读了命名空间概念,我查看了许多视频,但我无法理解如何使用命名空间而不是include('');的概念。

任何人都可以提供演示代码或源代码.zip文件,以便我能理解在项目中实现的概念吗?

任何帮助表示赞赏。谢谢:))

2 个答案:

答案 0 :(得分:4)

命名空间includerequire的替代品。

您可以使用自动加载策略根据需要加载类。 PSR-4是推荐的标准,它们有example implementation

如果您正在使用Composer管理项目中的软件包,则可以configure it自动加载您的课程

答案 1 :(得分:1)

命名空间只是一个虚拟目录系统。要使用其他物理文件中的代码,您必须包含它,没有其他解决方法。

只需在页面顶部添加此行即可。

use \YOUR\NAMESPACE\HERE;

并且,您现在可以使用该指定的命名空间,但仍然必须包含它。

要添加一些自动化功能,您可以使用spl_autoload_register()函数在课堂调用时自动包含文件。