16

您好,我正在尝试将 SILEX 微框架与我自己的充满类的库一起使用,因此我被 2 个加载器卡住了,导致加载器无法加载类的错误。有没有办法同时使用这 2 个加载器没有得到这个错误?

我使用的加载器可以在下面找到:

    <?php

/*
 * Loader
 */

function my_autoloader($className) 
{
// haal de base dir op.
  $base = dirname(__FILE__);


  // het pad ophalen
  $path = $className;

  // alle paden samenvoegen tot waar ik zijn moet en de phpfile eraan plakken.
  $file = $base . "/lib/" . $path . '.php';       

  // als file bestaat haal op anders error
  if (file_exists($file)) 
  {
      require $file;
  }
  else 
  {
      error_log('Class "' . $className . '" could not be autoloaded');
      throw new Exception('Class "' . $className . '" could not be autoloaded from: ' . $file); 
  }
}

spl_autoload_register('my_autoloader');

?>

silex 使用的加载器位于供应商目录中(来自框架本身)

这就是我的文件树的样子:

文件树

4

1 回答 1

39

不要在自动加载器函数中抛出错误。 spl_autoload_register允许 php 按顺序遍历所有已注册的自动加载器,但如果您在该过程的中间抛出未捕获的错误,则无法尝试下一个自动加载器。

http://php.net/spl_autoload_register

于 2012-11-12T14:25:33.407 回答