以下是我的文件夹结构
--project
|_____classes
|_____config.php
|_____classes.php
|_____project
|_____index.php
|_____dashboard.php
根据文件夹结构,我在config.php&中拥有所有数据库配置。我把它扩展到了classes.php和更多的类中。
现在当我在项目文件夹的dashboard.php文件中使用它时,我必须做这样的事情includes("../classes/config.php");
我已经在PHP中阅读了命名空间概念,我查看了许多视频,但我无法理解如何使用命名空间而不是include('');
的概念。
任何人都可以提供演示代码或源代码.zip文件,以便我能理解在项目中实现的概念吗?
任何帮助表示赞赏。谢谢:))
答案 0 :(得分:4)
命名空间不是include
或require
的替代品。
您可以使用自动加载策略根据需要加载类。 PSR-4是推荐的标准,它们有example implementation
如果您正在使用Composer管理项目中的软件包,则可以configure it自动加载您的课程
答案 1 :(得分:1)
命名空间只是一个虚拟目录系统。要使用其他物理文件中的代码,您必须包含它,没有其他解决方法。
只需在页面顶部添加此行即可。
use \YOUR\NAMESPACE\HERE;
并且,您现在可以使用该指定的命名空间,但仍然必须包含它。
要添加一些自动化功能,您可以使用spl_autoload_register()函数在课堂调用时自动包含文件。