Я написал небольшое PHP-приложение, которое я хотел бы распространять. Я ищу лучшие практики, чтобы их можно было установить на большинстве веб-хостов с минимальными трудностями.
Вкратце: это простой инструмент, который позволяет людям загружать файлы после входа в систему с паролем.
Итак, мои вопросы:
1) Как мне обращаться со значениями конфигурации? Я не использую базу данных, поэтому файл конфигурации кажется подходящим. Я знаю, что другие php-приложения (например, Wordpress) используют определения, но они носят глобальный характер, и существует вероятность того, что имена будут конфликтовать. (Глобальные переменные также имеют ту же проблему, очевидно.) Я посмотрел на механизм файлов ini, встроенный в PHP. Это позволяет только комментарии вверху - так что вы не можете легко аннотировать каждый параметр - и вы не можете проверить синтаксис с "php -f". Другие варианты?
2) Как обращаться с шаблонами? Приложение должно откачать форму. Возможно с сообщением об ошибке. (например, «Извините, неверный пароль.») У меня есть переменная класса с формой HTML, но я также могу использовать внешний файл шаблона (указанный в конфигурации). Я делаю простой поиск и замену - например, % SCRIPT% к имени скрипта,% STATUS% для хранения сообщения об ошибке. Это немного похоже на изобретение колеса, но использование системы шаблонов, такой как Smarty, является излишним. (Плюс у них уже может быть система шаблонов.) Другие варианты?
3) i18n - есть только 3 строки сообщений, и gettext, похоже, не установлен повсеместно. Это такая плохая идея, просто сделать эти три параметра строки в файле конфигурации?
4) Как лучше интегрироваться с другими фреймворками? Мое приложение - один класс. Итак, я подумал, что могу просто включить скрипт php, который показывает, как вызывается класс. Это было бы отправной точкой для людей, которые должны были интегрировать ее в другую среду, но также было бы хорошо для тех, кто не заинтересован в настройке. Разумные
5) Параметры GET / POST - это плохая форма для того, чтобы класс смотрел на $ _GET и $ _POST? Должны ли все значения передаваться в мой класс во время строительства?
Спасибо.