php - 在另一个 PHP 类中使用许多不同的对象实例的最佳方法是什么?

标签 php html oop

我有一个名为 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/

相关文章:

php - Cakephp/php 用户 session 交换我们的一部分客户

javascript - 多个 contenteditable 元素,使用箭头键导航

PHP:现实世界的 OOP 示例

c# - 拥有一个从基类派生并且还包含它的实例的类是一个好的设计吗?

java - 一旦完成遍历 ArrayList,如何阻止该方法返回 null?

php - PHP时间和SQL时间有什么区别?

php - "$ns"和 "$is_prefix"参数是关于什么的?

php - Laravel 5.1 auth 刷新后注销

css - 侧边栏组件的完美位置类型是什么?

html - 未显示 Logo