我写了一个cURL-class,我想在github上分享,也可以通过作曲家提供。我成功地将我的lib放在了github https://github.com/tzfrs/SimpleCurl上,但是我仍然无法理解正确的文件夹结构。
我现在有这样的话:
"SimpleCurl"
src/
src/
文件夹的文件SimpleCurl.php
是SimpleCurl
类SimpleCurl
类位于名称空间tzfrs/Util/
"autoload": {
"psr-4": {
"tzfrs\\Util\\": "src/"
}
}
现在,我的理解问题是:SimpleCurl.php
- 文件是否可以直接位于文件夹src/
中?或者它必须位于此git存储库的文件夹src/tzfrs/Util
中?
换句话说,我是否将供应商名称和主命名空间作为文件夹结构放入我的项目中?或者我只将子名称空间名放入文件中?
举个例子:假设我的班级SimpleCurl
不在名称空间tzfrs/Util/
中,而在名称空间tzfrs/Util/Curl
我是否需要将名称空间Curl
作为文件夹添加到src文件夹中,因为它是一个子名称空间名称?
答案 0 :(得分:1)
如果您的库遵循PSR-4,则可以使用该自动加载配置在“src”内部使用SimpleCurl.php。没有必要将命名空间复制为文件夹结构,这是您可以在许多PSR-0库中看到的,但PSR-0已被弃用。
如果您希望在命名空间SimpleCurl
中拥有类tzfrs\Util\Curl
,则只需创建一个名为Curl
的文件夹,该文件夹应包含您的SimpleCurl.php
。 src
中的所有内容都会附加到您定义为tzfrs\Util
的前缀。