php - 如何为 PHP-include 提供自己的命名空间(如 Python 中的 "from a import MyClass")?

标签 php python import module namespaces

我对 PHP 有一点经验,但我主要来自 Python。我非常喜欢 Python 的一点是模块的处理方式。如果我的目录中有一个名为 a.py 的文件,其中包含一个名为 MyClass 的类,我可以像这样简单地导入该类。

from a import MyClass

但是,从 PHP 开始,我知道您可以执行以下操作:
include somefile.php

这将导入并运行文件中的所有代码,这使其类似于 Python 中的以下内容
from a import *

然而,进行通配符导入会让我对实际导入的内容一无所知,并且还会导致命名空间污染。所以我的问题;有没有办法通过命名它们来导入 PHP 中的类?

最佳答案

PHP 中的良好做法是每个文件一个类,而不是模块的同一文件中的所有类

前任:

classes/mynamespace/mypackage/IO.php
classes/mynamespace/mypackage/DB.php
classes/mynamespace/mypackage/log.php
...

然后你使用自动加载器,每次你需要在你的代码中添加一个类时,自动加载器就会启动并加载它。如果您没有使用内置自动加载器的框架,一个好的解决方案是使用由 Composer 提供的自动加载器,PHP 的依赖管理器:http://getcomposer.org/

关于php - 如何为 PHP-include 提供自己的命名空间(如 Python 中的 "from a import MyClass")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18409109/

相关文章:

php - Laravel:服务/存储库模式和复制代码

python - WindowsError 关闭后移动 sqlite3 数据库

python - 将列从 csv 动态导入到 sqlite3 和 python 中的数据库表中

python - 如何与另一个脚本共享 python 脚本的导入?

python - 在模拟中修补生成器

windows - 从Windows导入到Hive,ParseException行1:0无法识别 'into'附近的输入 '<EOF>'

Php脚本未按预期导入新记录

php - Nodejs - .node_libraries/for www-data

php - 印地语无法在 tcpdf 上正确显示

python flask 导入错误