一个单独的PHP类初始化文件

时间:2016-04-03 11:17:26

标签: php

这是我第一次以完整的OO风格完成项目。我的课看起来很乱。我发现自己在一堆类文件上做了require_once并创建了类的新实例。所以我将所有需求和创建实例放入一个单独的文件(init.php)中,如下所示:

<?php

require_once 'resources/config.php';
require_once 'classes/db.php';
require_once 'classes/auth.php';
require_once 'classes/msg.php';
require_once 'classes/validate.php';
require_once 'classes/view.php';
require_once 'functions/misc.php';

//DB connection
$db = new DB(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$dbConnection = $db->connect();

$msg_class = new Msg();
$validate = new Validate($dbConnection);

$msg_strings[] = array();

$view = new View($dbConnection);

?>

现在我正在对此文件进行require_once

我不会在几页中使用View类。如果我不打算使用它,那么创建类的实例是不好的做法并且不利于性能?

1 个答案:

答案 0 :(得分:3)

最佳做法通常是使用template,PHP为此提供了出色的自动加载器 - SPL自动加载器:http://php.net/manual/en/function.spl-autoload-register.php

您可以创建一个回调,当找不到类时,PHP将自动调用该回调,在此回调中您可以要求/包含PHP将搜索您的类的文件夹路径,您还可以注册多个自动加载器,这将是按照定义的顺序调用,例如下面的例子 -

autoloader

将它放在您调用init.php文件的文件顶部,只要找到需要自动加载的类,就会调用自动加载器。