在我的课程中包含文件的最佳方法是什么?我经常做的事情经常发生

时间:2015-02-18 16:15:47

标签: php oop

所以我在课时没有找到子类或父母的麻烦。

例如,我有一个非常简单的类,它有一个子类,给我带来很多麻烦。

主类称为Activities,子类称为DirectMessage。

这是活动类布局。

namespace activities;
require_once(INCLUDES . '/classes/activities/DirectMessage.php');

class activities extends \BaseController {
}

这是DirectMessage的一个。

namespace DirectMessage;


use activities\activities;

class DirectMessage extends activities
{
}

我一直在使用活动,但是当我开始包含DirectMessage时,它开始给我这样的错误:Fatal error: Class 'activities\activities' not found in /includes/classes/activities/DirectMessage.php on line 13

不幸的是,它并不总是给我这个错误,所以它与我猜它被调用的地方有关。

有没有更好的方法require我的子类?

1 个答案:

答案 0 :(得分:2)

我建议您使用Composer's PSR-4 autoloading,即使您没有加载任何与Composer的依赖关系。这是我发现基本自动加载工作的最简单方法。

简而言之,PSR-4自动加载将允许您将名称空间映射到文件夹结构。 Composer将生成一个自动加载文件(vendor/autoload.php) - 这将是您在整个项目中应该只有require()的唯一文件。