如何在所有插件中搜索Composer的供应商/autoload.php?

时间:2017-07-31 作者:aberkow

我已经将一些项目(主题和插件)设置为composer项目。这些项目可以是彼此的开发依赖项。现在我正在研究一个主题,它需要vendor/autoload.php 文件然而,当我将该主题引入另一个项目(如插件)时,我仍然需要访问autoload.php. 问题是autoload.php 文件现在位于插件的目录结构中,而不是主题。

define(\'FL_CHILD_THEME_DIR\', get_stylesheet_directory());
define(\'FL_CHILD_THEME_URL\', get_stylesheet_directory_uri());

if (!file_exists(FL_CHILD_THEME_DIR . \'/vendor/autoload.php\')) {
  // somehow check all the directories within the plugins directory 
  // for vendor/autoload.php
} else {
    require FL_CHILD_THEME_DIR . \'/vendor/autoload.php\';
  }
}
我试过使用scandirglob 但我没有再靠近了。我原以为这样做行得通,但我还是没能做到。

foreach(glob(plugin_dir_path() . \'vendor/autoload.php\') as $file {
  require $file;
}

1 个回复
SO网友:Nuno Sarmento

自动加载器设置:

"autoload"   : {
   "files"   : ["functions.php"]
}
正确设置自动加载程序后,只需包括该文件,如下所示:

require_once( \'vendor/autoload.php\' );
此处为完整教程-https://torquemag.io/2014/11/improving-wordpress-plugin-development-composer/

结束