Наблюдаю за разработкой тикет системы на CI и заметил странность данного фреймворка, в нём ОЧЕНЬ много мест, где нужно параметром передавать текстовую строку. Мой совет относится не только к CI но и к остальным проектам.
Используйте константы
Что это нам даёт:
1. Зачиту от опечаток, если у вас включены ошибки типа E_NOTICE. $this->config(DB_USER); $_CONFIG[DB_USER]
2. Удобный автокомплит.
3. Используя эмуляцию нэймспэйсов, не нужно запоминать кучу лишней информации. DB_*, PAGE_*.
4. Не забываем что и у классов есть константы MyClass::FETCH_ASSOCи теперь ваш класс будет прозрачен для пользователей.
Очень полезный совет.
Есть вопрос. Где именно вы объявляете константы? В конфиге, конструкторе контроллера или и там, и там.
На мой взгляд удобнее будет разбить на части.
действительно, здесь такой же принцип как и при инициализации переменных — нужно объявлять в том месте где планируется использовать. только при разделении по файлам нужно помнить о эмуляции нэймспейсов, чтобы не потеряться.