当我通过link to the repo 附在回答中,我注意到requice
单个文件中的语句。主要问题是repo缺少一个可以在项目范围内优化的自动加载器,并且插件包括所有这些文件,无论是否需要。
当您开始使用Composer管理附件时,您会发现它会创建一个autoload.php
您编写(或获取)的每个包的文件。然后,您可以使用Composer作为包管理器创建完整的项目,这是一个很好的副作用,还可以创建一个集中的项目autoload.php
文件,而不是每个包含的包(插件/主题/等)一个自动加载器。在这个自动加载器的基础上,Composer还构建了一个“类>文件”映射作为“缓存”,以避免尽可能多的磁盘读取,从而尽可能快地保持类查找。
这将避免必须为供应商命名空间的类命名。这意味着如果多个包具有composer.json
文件,则只有一个位置可以保存这些供应商软件包(从而节省带宽和磁盘空间)并从中提取。即使不忽略VCS控制包中的供应商文件,也无需再加载它们。
# Before in Package (A)
$stripe = new \\MyRadNamespace\\Stripe;
# Before in Package (B)
$stripe = new \\MyFunkyNamespace\\Stripe;
# After – anywhere!
$stripe = new \\Stripe;
如果插件或主题尚不支持Composer,您只需通过
WPackagist 代理/镜像服务。
要快速开始使用Composer软件包管理器,我建议使用wecodemore/wpstarter 作者@gmazzap–docs here.