【问题标题】:Composer package folder structure created with Laravel 4's "bench" command使用 Laravel 4 的“bench”命令创建的 Composer 包文件夹结构
【发布时间】:2013-01-29 18:56:42
【问题描述】:

所以,我使用php artisan bench --composer为 Laravel 4 创建了一个作曲家包

这一切都很好,

但是,我查看了 Basset Packages 供应商文件夹,发现我们的结构略有不同。

Basset:
/vendor/jasonlewis/basset/src/Basset/BassetServiceProvider.php
Mine:
/vendor/hailwood/smartless4laravel/src/Hailwood/Smartless4laravel/Smartless4laravelServiceProvider.php

所以基本上我们这里是

<v> = vendor Lower case,  <p> = package lower case, 
<V> = vendor Upper cased  <P> = package upper cased

Basset:
/<v>/<p>/src/<P>/
Mine:
/<v>/<p>/src/<V>/<P>/

那么,为什么我的包又嵌套在 vendor 下,还是 Basset 也应该再次列在 vendor 下?

【问题讨论】:

    标签: laravel composer-php laravel-4


    【解决方案1】:

    我相信约定是 vendor/package/src/namespace。如果您的命名空间包含供应商名称,您应该保持原样。

    【讨论】:

    • 嗯,有道理,那么,在这种情况下,巴塞特违反了标准?
    • Basset 打破了命名空间约定,不包括供应商,但不在目录结构中。如果您查看 Laravel 源代码,您会发现它位于 laravel/framework/src/Illuminate/... 其中 Illuminate/... 是 laravel 包的命名空间。
    【解决方案2】:

    归根结底,工作台会创建一个供应商名称和包名称文件夹,而在 basset 包中,只有包名称文件夹。 Basset 包可能不是使用工作台创建的,因为我认为它的使用时间比工作台长。 (框架的新成员)。

    【讨论】:

    • 那么有什么理由我不应该将它移出子供应商文件夹吗?
    • 不一定,但请注意您需要不同的命名空间。
    猜你喜欢
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多