1

我正在尝试使用 Fat Free 中的命名空间。一切正常,但是当我添加命名空间时,我得到了这个:

内部服务器错误

Fatal error: Class 'Gadgets\iPad' not found

这是我的代码:

索引.php

$f3=require('lib/base.php');

$f3->set('AUTOLOAD','ui/');

$f3->route('GET /', function(){

$obj=new Gadgets\iPad;

echo $obj->hallo('cat');

});

$f3->run();

用户界面/iPad.php

namespace Gadgets;

class iPad { 

    function hallo($word){ echo $word;}}

谢谢

4

1 回答 1

2

您的类文件应该出现在ui\Gadgets文件夹中(完整路径ui\Gadgets\iPad.php:),以便 F3 找到并自动加载它。有关 F3 的自动加载器行为的更多详细信息,请参阅此答案

要回答您的评论“我认为我必须使用命名空间,所以我不必创建 Gadgets 文件夹”,请记住以下两点:

  • 命名空间可帮助您组织代码:将与通用功能相关的所有类存储到同一个命名空间中。
  • 自动加载器可以帮助您组织文件:每个文件存储一个类并停止关心requireinclude调用。

这两个功能(命名空间/自动加载器)都是可选的。如果您了解并需要它们,请使用它们。

于 2015-01-01T21:41:40.750 回答