我開始使用F3框架(胖免費框架),到目前爲止它非常棒。簡單而輕盈。我將其設置爲使我的控制器位於單獨的文件夾App/Controllers中,並且使用類和名稱空間的功能非常出色。在遇到麻煩的事情是從其中一個控制器讀取JSON文件。我的代碼如下:file_get_contents或從控制器讀取JSON文件
$json = $f3->read('settings/templates.json');
$templates = json_decode($json);
var_dump($templates);
$fields = $templates->$template->fields;
我試過這樣的,像這樣的
$json = file_get_contents('settings/templates.json');
$templates = json_decode($json);
var_dump($templates);
$fields = $templates->$template->fields;
但無論哪種方式,我得到一個文件未找到錯誤。所以不知何故,F3沒有找到該文件。我不確定是否需要將其包含在AUTOLOAD中,或者是否有更好的方法來做到這一點。
我試過像這樣一個數據庫,並找到該文件,但不知何故,這似乎並不正確:
$db = new \DB\Jig ('settings/' , \DB\Jig::FORMAT_JSON);
$user= new \DB\Jig\Mapper($db, 'templates.json');
var_dump($templates);
$fields = $templates->$template->fields;
好像我不應該使用DB類和夾具只是讀一個簡單的JSON文件。有人可以澄清這一點嗎?
編輯:好的答案下面的幫助,但在我的具體情況,一切(語法)是正確的。我認爲它不工作的原因是因爲我有錯的路徑在此行中我的index.php
$f3->set('AUTOLOAD','App/Controllers/');
如果你得到一個文件未找到錯誤,這個問題是不是與你的邏輯。嘗試使用'__DIR__'常量爲文件使用絕對路徑。這個常量將返回調用它的php文件的路徑。我不確定你的設置目錄在哪裏,但是像這樣可以幫助:'__DIR__。 '../ settings/templates.json'' – Sehael
好吧,這是行得通的,但我不禁覺得,它不是每個F3文檔的「正確」方式...... – garek007
'$ f3-> read(' settings/templates.json')'應該可以工作,只要1)'settings /'文件夾放在'index.php'旁邊2)你沒有通過'cd'改變工作目錄。是這樣嗎? – xfra35