PHP:在当前框架中设置第三方模块/插件的命名空间


PHP: Namespacing Third-party Modules / Plugins in your Current Framework

假设我有一个名为Foo的框架,它包含以下名称空间:

  1. Foo'Controllers
  2. Foo'Models
  3. Foo'Core

我想包含一个第三方插件(Symfony YAML),但它不是一个命名空间库。

如何将所有的YAML类(一共有四个)包含到以下命名空间中:

Foo'ThirdParty'YAML

不编辑原始Symfony YAML文件?

如果不修改原始文件,就无法做到这一点。即使您创建了扩展Symfony的YAML类的带有名称空间的包装器类,原始的包装器类仍将驻留在全局名称空间中(违背了使用名称空间的目的)。

是否有你不想修改原始文件的原因?如果您担心必须更新Symfony包(您正在使用版本控制,对吗?),则名称空间非常容易合并。