我有一个名为 Page 的类,它为当前页面加载一个 PHP 文件,其中包含所有 HTML(模板文件)。在我的模板文件中,我想使用在 Page 类之外初始化的其他对象的实例(例如 User、PDO 或其他类)。我的问题是,我如何以最聪明的方式做到这一点。
在我的页面类中,我有一个名为 get_page() 的方法,它加载我的模板文件(包含我的 GUI 的所有代码。
public function get_page() {
// Load theme template
...
$template_file = ABSPATH_THEME . 'tpl.' . $result['template_file'] . '.php';
if(file_exists($template_file)) {
$page = require_once($template_file);
return $page;
}
}
如您所见,模板文件加载到我的 Page 类中,因此它不会访问在我的 Page 类之外初始化的类的实例。
我可以想出不同的解决方案:
1) 在构建我的页面时,我将不同类的所有实例传递给我的类页面。我认为这是正确的方法,但如果我在设计中需要 5、10 或 20 个不同的对象,可能会非常复杂。
2) 找到一种方法将模板文件包含在 Page 类之外,但从 get_page() 函数触发 - 不知道如何执行此操作,以及它是否是一个好的解决方案?
能否请您告诉我什么是最好的,是否有更好的方法?
最佳答案
你可以只在你的 php 顶部包含类
例如。/CLASSPATH/ClassName.php
然后您可以为该类创建一次实体并在所有地方使用它
例如。 $entity = new ClassName();
关于php - 在另一个 PHP 类中使用许多不同的对象实例的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21940801/