使用PHP名称空间和文件系统结构进行版本控制

使用PHP名称空间和文件系统结构进行版本控制,php,namespaces,versioning,Php,Namespaces,Versioning,我想知道使用PHP的名称空间/自动加载来版本化我的代码是否是个好主意。文件系统类似于/Class//,PSR4自动加载程序将new\\\\()映射到适当的目录。我们还有一个/vendor/目录,用于我们使用的其他供应商的软件包 我的想法是拥有一堆运行特定逻辑组的包,而一个瘦路由器将只使用API包。API包本质上是一组控制器,它们拉取其他包的适当版本并运行它们 这样做将允许团队独立处理逻辑包,并且仅在进行向后不兼容的更改时发布新版本。其他包可以按照自己的速度迁移到其依赖项的新版本,而不会破坏任何东

我想知道使用PHP的名称空间/自动加载来版本化我的代码是否是个好主意。文件系统类似于
/Class//
,PSR4自动加载程序将
new\\\\()
映射到适当的目录。我们还有一个
/vendor/
目录,用于我们使用的其他供应商的软件包

我的想法是拥有一堆运行特定逻辑组的包,而一个瘦路由器将只使用API包。API包本质上是一组控制器,它们拉取其他包的适当版本并运行它们

这样做将允许团队独立处理逻辑包,并且仅在进行向后不兼容的更改时发布新版本。其他包可以按照自己的速度迁移到其依赖项的新版本,而不会破坏任何东西。当我们不推荐包的版本时,我们可以在实例化时让基本对象记录调用堆栈,以使重构更容易跟踪。我们的API也将进行版本控制,因此特定的Slim路由可以按照自己的速度迁移到不同版本的API

我并没有发现这种方法有很多缺陷,但我考虑过的一种可能性是,它会带来太多的开销。在包含每个包的多个版本的文件系统和实例化同一个类的多个版本的类之间,会有潜在的性能影响吗?此外,这种粒度级别会不会造成更多的麻烦?这是一个发展非常迅速的项目,因此我们需要一个能够在不破坏任何东西的情况下快速更新代码的系统