在错误的位置搜索父类

时间:2014-03-07 21:29:06

标签: php autoload directory-structure fat-free-framework

我正在尝试在无胖框架之上自定义创建MVC文件夹结构。我有一个controllers文件夹,其中包含两个文件base.phpindex.php。现在我正在尝试加载索引文件,如:

$f3->route('GET /','Index->index');

但是我得到了一个致命的错误:

Fatal error: Class 'controllers\Base' not found

base.php的代码:

<?php
namespace controllers;
class Base extends \Prefab {
    protected $f3;

    public function __construct() {
        $this->f3 = \Base::instance();
    }
}

index.php的代码

<?php
namespace controllers;
class Index extends Base {

    public function __construct() {
        parent::__construct();
    }

    public function index($f3, $params) {
        echo "Hello World!";
    }
}

知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

controllers文件夹应该是AUTOLOAD文件夹的子文件夹。像这样:

- autoload
 |- controllers
   |- base.php
   |- index.php
- lib
 |- base.php
- index.php

你的root index.php看起来像这样:

$f3=require('lib/base.php');
$f3->set('AUTOLOAD','autoload/');
$f3->route('GET /','controllers\Index->index');

PS:您的示例中发生的事情是,controllers文件夹被声明为自动加载文件夹,base.phpindex.php被视为根命名空间的一部分。