MVC, как мне написать свой конфигурационный файл? - PullRequest
1 голос
/ 02 августа 2011

Я решил переписать свой загрузчик, используя шаблон проектирования MVC, потому что мой код был грязным. Файлы организованы таким образом:

-model.php: По сути, это класс, который имеет все функции, необходимые для извлечения данных из моей базы данных, такие как последние загруженные файлы, количество файлов, загруженных текущим пользователем, и т. Д. Существует частная переменная db_link, которая хранит ресурс, созданный PDO. (объект PDO).

-index.php: Это контроллер. Он проверяет, есть ли загружаемый файл, проверяет, имеет ли он допустимое расширение и т. Д. Он вызывает функции из класса, содержащегося в model.php (сначала я создаю объект этого класса).

-settings.php: Мой конфигурационный файл. Здесь я определяю имя пользователя базы данных, пароль, а также максимальный размер файла, допустимые расширения и т. Д. Я просто делаю следующее: $ allow_extension = array ('swf', 'txt', 'jpg', 'gif', 'png');

Но если я включу ее в index.php и попытаюсь использовать эту переменную в функции, она не будет работать, потому что она не в той же области (если я не включу ее в саму функцию, но я не хочу этого делать). Мне просто нужен лучший способ упорядочить мои настройки.

Кроме того, я создаю объект db с классом, о котором я говорил ранее. Мне нужно передать объект в функцию, которую я хочу вызвать, и это тоже боль в шее. Есть ли другой способ, которым я мог бы сделать это?

1 Ответ

0 голосов
/ 02 августа 2011

Вы, вероятно, должны использовать константы в settings.php:

  • Вы можете хранить массив, используя метод сериализации (см. Ответ для Константы PHP, содержащие массивы? )
  • константы доступны везде
  • это более читабельно
  • настройки всегда должны быть постоянными

Что касается дБ, я всегда использую одноэлементный паттерн сам, изатем просто используйте Model_Mysql::getInstance();, что делает его автоматически доступным везде.

...