如果PHP库可以注册自己的自动加载器,那么为什么PSR-0要求它们在统一目录中呢?

我正在构建一个框架(这是一个巨大的简化 – 请不要建议使用现有的框架,这是没有用的),我希望能够集成其他库.

PSR-0建议建议每个子命名空间中的所有文件都包含在它们自己的特定目录中.为了让我的框架用户不那么复杂,我想将所有内容保存在一个命名空间中,但是将文件组织到目录中.

如果PHP库可以使用spl_register_autoload()注册自己的自动加载器,那么为什么必须遵守此目录结构?简单地避开PSR-0,为我的类使用我自己的自动加载器,然后使用(例如)Symfony的自动加载器用于我可能使用的任何Symfony类是否可行/允许?

没有人强迫你遵守标准.当然,您可以制作自己的自动加载器并使用它.

该规范最有可能是为了使库更容易理解而创建的,并认为如果所有代码使用相同的结构,那么任何人都应该能够立即知道去哪里找到某个类.

以下标准具有一定的优势,例如:

>具有该标准知识的人员已经知道如何使用该代码
>可以使用符合标准的工具来使用附加代码(例如,IDE插件)
>假设标准合规性的代码已经可以与所有附加代码一起使用,即使它不是专门为您自己的代码而制作的(例如,第三方自动加载器应该能够加载您的代码并且您自己的自动加载器应该能够加载第三方代码)

缺点可能是您可能不喜欢标准.如果是这种情况,那么在决定是否遵循时,你应该权衡其中的优势.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...