Переменные
Основное использование
Переменные, определенные в Fat-Free, являются глобальными, то есть они могут быть доступны любому компоненту. Глобалы фреймворка не идентичны глобалам PHP. Переменная F3 с именем content
не идентична PHP $content
. F3 сам по себе является доменным языком и поддерживает свою собственную отдельную таблицу символов для системных и прикладных переменных. Фреймворк, как и любая хорошо разработанная объектно-ориентированная программа, не загрязняет глобальное пространство имен PHP константами, переменными, функциями или классами, которые могут конфликтовать с любым приложением. В отличие
от других фреймворков, F3 не использует PHP define()
заявление. Все константы фреймворка ограничены классами.
Чтобы присвоить значение F3 переменной:
Примечание: F3 переменные принимают все типы данных PHP, включая объекты и анонимные функции.
Чтобы задать сразу несколько переменных:
Чтобы получить значение переменной фреймворка с именемvar
:
Чтобы удалить F3 переменную из памяти, если она вам больше не нужна (отбросьте ее, чтобы она не мешала другим вашим функциям / методам), используйте этот метод:
Чтобы узнать, была ли переменная определена ранее:
Глобальные
F3 поддерживает свою собственную таблицу символов для переменных фреймворка
и приложения, которые не зависят от PHP. некоторые переменные сопоставляются с глобалами PHP. В F3 SESSION
- это эквивалент$_SESSION
, а REQUEST
карты$_REQUEST
-нет . Рекомендуется использовать переменные фреймворка, а не PHP, чтобы помочь вам с передачей данных между различными функциями, классами и методами. У них есть и другие преимущества:
Переменные фреймворка можно использовать непосредственно в шаблонах.
Вам не нужно указывать PHP ссылаться на переменную вне текущей области видимости, используя глобальное ключевое слово внутри каждой функции или метода. Все переменные F3 являются глобальными для вашего приложения.
Установка F3 эквивалента PHP
SESSION
также изменяет базовую версию PHP$_SESSION
. Изменение последнего также изменяет аналог фреймворка.
Fat-Free не поддерживает просто тупое хранилище переменных и их значений. Он также может автоматизировать управление сеансами и другие вещи. Назначение или извлечение значения через SESSION
переменную F3 автоматически запускает сеанс. Если вы используете $_SESSION
(или связанные с сеансом функции) непосредственно, а не переменную фреймворкаSESSION
, ваше приложение становится ответственным за управление сеансами.
As a rule, framework variables do not persist between HTTP requests. Only SESSION
and COOKIE
(и их элементы), которые сопоставлены с PHP $_SESSION
и $_COOKIE
глобальные переменные не зависят от состояния HTTP.
Существует несколько предопределенных глобальных переменных, используемых внутри Fat-Free, и вы, безусловно, можете использовать их в своем приложении. Будьте уверены, что вы знаете, что делаете. Изменение некоторых глобальных переменных без жира может привести к неожиданному поведению фреймворка.
Платформа содержит несколько переменных, которые помогут вам упорядочить структуру файлов и каталогов. Мы видели, как мы можем автоматизировать загрузку классов с помощью автоматической AUTOLOAD
. Существует глобальная переменная UI
пользовательского интерфейса, которая содержит путь, указывающий на расположение ваших HTML-представлений/шаблонов. DEBUG
- это еще одна переменная, которую вы будете довольно часто использовать во время разработки приложений, и она используется для настройки детализации следов ошибок.
Полный список встроенных переменных фреймворка приведен в Кратком справочнике.
Правила Именования
Переменная фреймворка может содержать любое количество букв, цифр и символов подчеркивания. Он должен начинаться с Альфа-символа и не должен содержать пробелов. Имена переменных чувствительны к регистру.
F3 использует все заглавные буквы для внутренних предопределенных глобальных переменных. Ничто не мешает вам использовать имена переменных, состоящие из всех заглавных букв в вашей собственной программе, но, как правило, придерживайтесь нижнего регистра (или camelCase) при настройке собственных переменных, чтобы избежать любого возможного конфликта с текущими и будущими выпусками фреймворка.
Вы не должны использовать зарезервированные PHP слова, такие какif
, for
, class
, и т.д.default
как имена переменных фреймворка. Это может привести к непредсказуемым результатам.
Работа со строковыми и массивными переменными
F3 также предоставляет ряд инструментов, которые помогут вам работать с переменными фреймворка.
F3 также предоставляет некоторые примитивные методы для работы с переменными массива:
Структуры Каталогов - Сделай сам!
В отличие от других фреймворков, которые имеют жесткую структуру папок, F3 дает вам большую гибкость. У вас может быть структура папок, которая выглядит следующим образом (заключенные в скобки слова во всех заглавных буквах представляют переменные фреймворка F3, которые нуждаются в настройке):
Не стесняйтесь организовывать свои файлы и каталоги так, как вы хотите. Просто установите соответствующие глобальные переменные F3. Если вы хотите действительно безопасный сайт, Fat-Free даже позволяет хранить все ваши файлы в недоступном для Интернета каталоге. Единственное требование состоит в том , чтобы вы оставили index.php
, .htaccess
и свои публичные файлы, такие как CSS, JavaScript, изображения и т. д. в пути, видимом вашему браузеру.
Об обработчике ошибок F3
Fat-Free генерирует свои собственные HTML-страницы ошибок с трассировками стека, чтобы помочь вам в отладке. Вот вам пример:
внутренняя ошибка сервераstrpos () ожидает по крайней мере 2 параметра, 0 задано
Если вы чувствуете, что это слишком просто или хотите сделать что-то другое, когда возникает ошибка, вы можете создать свой собственный обработчик ошибок:
F3 поддерживает глобальную переменную, содержащую сведения о последней ошибке, возникшей в вашем приложении. ERROR
Переменная представляет собой массив, структурированный следующим образом:
Если ваш проект использует шаблоны, вы можете обработать потенциальные ошибки шаблонов, очистив любой существующий выходной буфер и отобразив вместо него новую страницу:
При разработке приложения лучше всего установить максимальный уровень отладки, чтобы можно было проследить все ошибки до их первопричины:
Просто вставьте команду в последовательность начальной загрузки вашего приложения.
Как только ваше приложение будет готово к выпуску, просто удалите инструкцию из вашего приложения или замените ее на:
Это приведет к подавлению вывода трассировки стека на любой сгенерированной системой HTML-странице ошибок (потому что она не предназначена для просмотра посетителями вашего сайта).
DEBUG
может иметь значения в диапазоне от 0
(stack trace suppressed) до 3
(most verbose with class and function call logs).
Не забывай! Трассировки стека могут содержать пути, имена файлов, команды базы данных, имена пользователей и пароли. Вы можете подвергнуть свой веб-сайт ненужным рискам безопасности, если не установите DEBUG
глобальную переменную 0
в рабочей среде.
Можно настроить описание ошибки в момент запуска ошибки, передав новое описание в качестве второго аргумента, например :
конфигурационный файл
Если ваше приложение должно быть настроено пользователем, F3 предоставляет удобный метод чтения конфигурационных файлов для настройки вашего приложения. Таким образом, вы и ваши пользователи можете настроить приложение, не изменяя никакого PHP-кода.
Существует 4 предопределенных названия разделов:
[globals]
для определения глобальных переменных[routes]
для определения маршрутов[maps]
для определения карт маршрутов[redirects]
для перенаправления маршрутов
NB: [globals]
предполагается, если раздел не был предоставлен. Вы можете объединить все разделы в один конфигурационный файл-хотя наличие [routes]
, [maps]
, и [redirects]
в отдельном файле рекомендуется. Таким образом, вы можете разрешить конечным пользователям изменять некоторые флаги конкретных приложений и в то же время запретить им вмешиваться в вашу логику маршрутизации.
Вот как использовать различные разделы:.
[глобальный]
Вместо того чтобы создавать PHP скрипт содержащий следующий пример кода:
Вы можете создать конфигурационный файл, который делает то же самое:
Вместо длинных $f3->set()
инструкций в коде вы можете поручить фреймворку загрузить конфигурационный файл в качестве замены кода. Давайте сохраним приведенный выше текст в качестве настройки setup.cfg. Тогда мы можем назвать его простым:
Строковые значения не должны заключаться в кавычки, если только вы не хотите включить начальные или конечные пробелы. Если запятая должна рассматриваться как часть строки, заключите ее в двойные кавычки - в противном случае значение будет рассматриваться как массив (запятая используется в качестве разделителя элементов массива). Строки могут охватывать несколько строк:
[пути сообщения]
F3 также дает вам возможность определять маршруты HTTP в конфигурационных файлах:
[карты]
Карты маршрутов также можно определить в конфигурационных файлах:
[перенаправляет]
Вы также можете перенаправлять устаревшие маршруты на новые страницы в конфигурационных файлах:
[конфигурации]
Вы также можете включить другие конфигурационные файлы.
Не позволяйте правильному значению сбить вас с толку, оба файла выше включены. Параметр true
/false
boolean запускает $allow
аргумент метода config, который позволяет разрешить динамический токен в ваших конфигурационных файлах.
Пользовательский раздел
Любое другое название раздела, кроме 3 выше, интерпретируется как [globals]
раздел с префиксом имени раздела.
Итак следующее:
эквивалентно:
Секционные Крючки
Кроме того, можно определить пользовательский обратный вызов, который применяется к каждому значению:
Last updated