0

我编写了一个包含一些抽象类的小型 PHP 引擎。引擎的用户必须实现这些抽象类的子类,并将它们的子类提供给引擎。引擎必须能够创建和操作这些子类的实例,因此用户不能只创建一个实例并将其传递给引擎。

所以我需要一种方法让用户将他们的子类传递给引擎。一种明显的方法是强制用户给这些子类一个特定的名称并将它们放在特定的目录中,但这似乎有点不雅。知道 PHP 可以将类存储在变量中,我首先尝试将类存储在常量中,所以我有一个包含几个defines 的文件,用户将填写其子类的名称和路径。那没有用 - 似乎 PHP 不能将类存储在常量中,只能存储变量。

所以现在我正在尝试相同的方法,但使用变量而不是常量。有一个文件,UserIncludes.lib.php,其中要求用户将两个变量设置为其子类的名称。然后这些变量用于在整个引擎代码中调用这些子类。我不确定这是一个好的系统,特别是因为需要使用global关键字将变量导入需要它们的每个函数,从而增加了引擎的文书和心理负担。

那么在 PHP 中做这种事情的最佳实践是什么?看来这一定是一项相当普遍的任务。

4

1 回答 1

0

只需使用名称空间,并带有适当的自动加载功能

这样文件系统就变成了一个透明的层,你只依赖命名约定——实际上是“强制用户给这些子类一个特定的名称并将它们放在一个特定的目录中”,但它工作得很好。

于 2012-11-20T11:50:41.153 回答