PHP: Включение файлов в мою собственную инфраструктуру MVC? - PullRequest
1 голос
/ 17 ноября 2010

Я только начал создавать свою собственную инфраструктуру MVC. Мне приятно знать все с нуля и получать только то, что действительно необходимо для моего приложения.

Я пришел из фона codeIgniter, который помог мне взглянуть на вещи MVC. В codeigniter, чтобы включить файл, codeIgniters использует собственный класс загрузки .

Этот класс загрузки при загрузке файла проверяет, был ли файл ранее включен, и если не включает его, что гарантирует, что файл не был включен дважды.

Однако этот метод включения файлов имеет недостаток, заключающийся в невозможности (?) Запуска тестов для моих файлов или использования PHPdoc в моей IDE, которая мне нужна.

Ясно, что я могу использовать обычные функции include & require в PHP вперед и назад по всему моему приложению, где потребуется определенная библиотека, но, очевидно, было бы неплохо включить один и тот же файл дважды ...

Итак, что такое хорошее решение для использования в моей собственной среде PHP5 MVC для включения файлов?

Ответы [ 4 ]

2 голосов
/ 17 ноября 2010

используйте include_once / require_once, но лучшим решением будет работа с автозагрузчиком

http://php.net/manual/de/language.oop5.autoload.php

какую IDE вы используете?

2 голосов
/ 17 ноября 2010

Я делаю то же самое с вами, и я использую автозагрузку .

Просто поместите это в index.php:

function __autoload($class_name) {
    include $class_name . '.php';
}

иливключите любую логику, необходимую для проверки нескольких каталогов.

Редактировать: Вот мой (немного странный) код для проверки альтернативного пути.Это можно сделать намного более аккуратно, если вам нужно проверить несколько путей.

function __autoload($class_name) {
  $path = INC_PATH . strtolower($class_name) . '.php';

  if (!file_exists($path)) {
    $path = MODELS_PATH . strtolower($class_name) . '.php';
  }

  require $path;
}
2 голосов
/ 17 ноября 2010

просто используйте include_once и require_once. в то время как у CI есть класс загрузки, вы ни в коем случае не обязаны его использовать.

1 голос
/ 17 ноября 2010

Обычно php имеет встроенный include_once, который, как следует из названия, включает в себя файл, но только один раз.

Или вы можете использовать автозагрузку , которую поддерживает большинство IDE (хотя некоторым это необходимо)немного подсказки - зависит от того, какую IDE вы используете).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...