包含重复的文件 class

Include file with duplicate class

我想包含一个文件,其中包含我的应用程序中已存在的 class。显然这会导致:

PHP Fatal error:  Cannot redeclare class XYZ

由于我不会深入到这里的原因,我无法更改相关文件的代码,也无法更改包含原始 class 的文件的代码。出于这个原因,我 认为 命名空间不是一个选项 - 尽管我对这个概念有点陌生,所以我可能是错的。

我意识到这不太可能是干净的。欢迎任何解决方法的想法,无论多么丑陋。

我将根据评论中提到的想法在这里回答我自己的问题。

$path = "/path/to/include/file.php";
$className = "OriginalClassname";
$tempClass = "ReplacementClassname";

$buffer = file_get_contents($file);
$buffer = str_replace($className,$tempClass,$buffer);
$file = 'temp.php';
file_put_contents($file, $buffer);
include_once($file);
unlink($file);

简而言之:

  • 读取文件到变量
  • 替换类名
  • 将变量写入临时文件
  • 包括临时文件
  • 删除临时文件

工作得很好。