Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 大型库的动态依赖关系_Php_Composer Php - Fatal编程技术网

Php 大型库的动态依赖关系

Php 大型库的动态依赖关系,php,composer-php,Php,Composer Php,假设我有一个包含多个部分的库,比如a和B 在应用程序中,我需要该库,但仅使用A部分。这是通过应用程序中可以动态读取的配置设置定义的 现在A和B对其他包有不同的要求 如果只使用依赖项,我怎么可能只需要依赖项? 显而易见的答案是将该库拆分为两个库。但该库目前尚未拆分,这将需要大量工作,并将彻底改变工作流程——这是我们不希望看到的。想想Zend Framework,它也是一个单独的库。最好的方法是从“要求”部分删除a和B,并将它们添加到“建议”部分(包括简短说明): 现在,当用户安装软件包时,会收到一

假设我有一个包含多个部分的库,比如a和B

在应用程序中,我需要该库,但仅使用A部分。这是通过应用程序中可以动态读取的配置设置定义的

现在A和B对其他包有不同的要求

如果只使用依赖项,我怎么可能只需要依赖项?


显而易见的答案是将该库拆分为两个库。但该库目前尚未拆分,这将需要大量工作,并将彻底改变工作流程——这是我们不希望看到的。想想Zend Framework,它也是一个单独的库。

最好的方法是从“要求”部分删除a和B,并将它们添加到“建议”部分(包括简短说明):

现在,当用户安装软件包时,会收到一条消息,显示建议的软件包:

package/package suggests installing "a/a": to be able to use X (1.*)
package/package susgests installing "b/b": to be able to use Y (~1.3)
安装软件包的用户现在应该确定自己是否还需要“a/a”或“b/b”


虽然此解决方案是最常用和最简单的解决方案之一,但拆分包是一个更好的选择。另见“

package/package suggests installing "a/a": to be able to use X (1.*)
package/package susgests installing "b/b": to be able to use Y (~1.3)