PHP - 这是好的require_once还是扩展

时间:2014-08-07 20:48:57

标签: php oop extends require-once

我是php的新手,但我会尝试直截了当。 我有一个名为ConnectionManager的类

class ConnectionManager
{
     function ConnectToDB()
     {
         //PDO connection code  
     }
}

在我的其他经理InstitutManager中我使用require_once($ filename)来访问我的ConnectionManager函数

require_once('../manager/ConnectionManager.php');
class InstitutManager
{
     protected $connInstance;

     function _construct()
     {
         $this->connInstance = new ConnectionManager;
     }

     function getInstituts()
     {
         $conn = $connManager->ConnectToDb();
         //retrieve instituts 
     }
}

问题是:我应该在我的InstitutManager中使用extends ConnectionManager而不是require_once吗?我为什么要使用另一个?

由于

编辑:更改了InstitutManager类的代码

这样可以吗?或者我应该通过function _construct($conn)

中已经实例化的连接传递参数传递

2 个答案:

答案 0 :(得分:2)

您的include_once读取源文件,在这种情况下,其中包含ConnectionManager的类定义。您的extends将类InstitutManager设置为继承类ConnectionManager,即InstitutManager在ConnectionManager中获取所有内容,然后可以定义自己对该基本结构的修改。这两个操作之间根本没有任何关系,你的$ connManager = new ConnectionManager操作都是荒谬的。

答案 1 :(得分:1)

require_once 'file'.php'只是意味着PHP解释器将获取名为file.php的文件的内容,并将其转发到调用include的位置。有点像在Word文件中选择所有内容会发生什么,单击复制并将其粘贴到另一个Word文件的顶部。

在您的情况下,您需要包含该文件,否则它将不知道在哪里找到ConnectionManager类。