我写了一个cURL类,我想在github上分享,也可以通过作曲家提供。我成功地将我的库放在 github https://github.com/tzfrs/SimpleCurl 上,但我仍然无法理解正确的文件夹结构。
我目前有这样的:
- git 存储库名为
"SimpleCurl"
- 存储库包含一个名为
src/
的文件夹 src/
文件夹包含文件SimpleCurl.php
,即类SimpleCurl
- 但是,
SimpleCurl
类位于命名空间tzfrs/Util/
- composer.json 文件包含以下信息
"autoload": {
"psr-4": {
"tzfrs\Util\": "src/"
}
}
现在,我的理解问题是:SimpleCurl.php
文件可以直接位于文件夹src/
中可以吗?还是必须在此 git 存储库src/tzfrs/Util
文件夹中?
换句话说,我是否将供应商名称和主命名空间作为文件夹结构也放入我的项目中?还是我只将子命名空间名称放入文件中?
举个例子:假设我的类SimpleCurl
不在命名空间tzfrs/Util/
中,而是在命名空间tzfrs/Util/Curl
我是否需要将命名空间Curl
作为文件夹添加到 src 文件夹中,因为它是子命名空间名称?
如果你的库遵循 PSR-4,那么可以使用该自动加载配置在 "src" 中安装 SimpleCurl.php。无需将命名空间复制为文件夹结构,这在许多 PSR-0 库中可以看到,但 PSR-0 已被弃用。
如果要将类SimpleCurl
在命名空间tzfrsUtilCurl
中,则只需创建一个名为Curl
的文件夹,该文件夹应包含您的SimpleCurl.php
。src
中的所有内容都将附加到您定义为 tzfrsUtil
的前缀中。
看看自动装填机之战:PSR-0 vs. PSR-4。