php – 组织对象和库

我一直在从头开始创建少量的库/类.我来自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');
上一篇:android – 隐藏状态栏


下一篇:java – 在视图中播放框架帮助