加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 组织对象和库

发布时间:2020-12-13 22:32:01 所属栏目:PHP教程 来源:网络整理
导读:我一直在从头开始创建少量的库/类.我来自codeigniter背景,我正在尝试创建一些具有类似功能的库.我一直在遇到有关对象的问题. 是以某种方式创建超级对象的最好方法吗?我的主要问题是我创建了一个视图对象,并运行一个名为load的函数,如下所示: class View {
我一直在从头开始创建少量的库/类.我来自codeigniter背景,我正在尝试创建一些具有类似功能的库.我一直在遇到有关对象的问题.

是以某种方式创建超级对象的最好方法吗?我的主要问题是我创建了一个视图对象,并运行一个名为load的函数,如下所示:

class View {

        public function __construct() {
        }

        public function load($file = NULL,$data = array()) {
                if($file) {
                        $file .= '.php';
                        if(file_exists($file)) {
                                // Extract variables BEFORE including the file
                                extract($data);
                                include $file;
                                return TRUE;
                        } else {
                                echo 'View not found';
                                return FALSE;
                        }
                } else {
                        return FALSE;
                }
        }
}

然后在我的php文件中,我在顶部包含’libraries.php’;看起来像:

include 'database.php';
include 'view.php';
include 'input.php';
include 'form.php';

$config = array(
        'host' => 'localhost','username' => 'username','password' => 'password','database' => 'database'
);

$database = new Database($config);
$view = new View();
$input = new Input();
$form = new Form();

从我包含库的文件中,我可以编写类似$form-> value(‘name’);没有错误.但是,如果我做这样的事情:

$view-> load(‘folder / index’,array(‘var_name’=>’var_value’));然后从文件夹/ index.php文件中我可以访问$var_name就好了,但不是$form-> value(‘name’);.我得到错误,如调用非对象的成员函数值()…

我的问题是如何以可重用的方式组织我的库和类.我不想使用前端加载器(index.php文件,所有内容都先运行).这可能是我编写课程的方式的一个问题,但我想这是一个关于事物所在位置等问题的更大问题.

解决方法

将库/类文件放在公共目录中.就像是:

www
 |_includes
 | |_classes
 | | |_view.php
 | |_config
 |   |_database.php
 |_other_folder
   |_index.php

然后,您可以将.htaccess文件中的公共包含路径设置为此“包含”目录:

php_value include_path .:/path/to/www/includes

那么other_folder / index.php文件只需要:

require_once('config/database.php');
require_once('classes/view.php');

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读