2015-01-15 2 views
3

Я хотел бы установить глобальную переменную CONTROLLERPATH в моем файле config.ini, а затем использовать эту переменную в моем файле index.php для маршрутизации запросов GET на правильный контроллер в моей структуре каталогов. Я делаю следующее, и F3 не может определить значение CONTROLLERPATH.Можете ли вы использовать глобальную переменную из файла конфигурации в index.php - Fat Free Framework?

Мой config.ini файл:

[global] 

DEBUG=3 
UI=ui/ 
CONTROLLERPATH='app/controllers/' 

В моей index.php файле:

$f3->config('config.ini'); 
$f3->route('GET /', CONTROLLERPATH . 'indexController->index'); 

Я также попытался угробить config.ini путь и установив значение controllerPath следующим образом в моем индексе. php, и он по-прежнему не работает:

$f3->set('controllerPath', 'app/controllers/'); 

ответ

3

Определенные переменные в ini-файлах: framework variables, а не PHP-константы.

Это означает, что они доступны через рамки, используя один из следующих синтаксисов:

  • $f3->get('CONTROLLERPATH')

  • $f3['CONTROLLERPATH']

  • $f3->CONTROLLERPATH

+0

Очень полезно! Когда я использую CONTROLLERPATH в качестве переменной рамки, он все равно не работает, если я пытаюсь объединиться в маршрутизации следующим образом: $ f3-> route ('GET /', $ f3-> CONTROLLERPATH. 'IndexController-> index') ; Мне просто нужно сказать F3, что все мои контроллеры находятся в папке приложений/контроллеров. – whistler

+0

Пространства имен PHP обозначаются * обратными слэшами *, а не косой чертой. Таким образом, ваша запись ini должна выглядеть как 'CONTROLLERPATH = app \ controllers \ '(обратите внимание также, как одиночные кавычки не требуются). Также ваша файловая структура должна соответствовать требованиям [автозагрузчик] (http://fatfreeframework.com/routing-engine#the-f3-autoloader) (см. Этот [ответ] (http://stackoverflow.com/questions/27262719/implementing -namespaces-in-fatfree-framework/27312633 # 27312633) для более подробной информации). – xfra35