Надежный менеджер каталогов в PHP - PullRequest
1 голос
/ 23 марта 2010

Это общий вопрос. Какие методы вы используете, чтобы предотвратить разрыв ссылок в вашем PHP-коде при каждом перемещении файла или перемещении файла в другой каталог?

Ответы [ 3 ]

1 голос
/ 23 марта 2010

Я использую файл конфигурации, в котором я определяю все пути (using define()) к различным каталогам, таким как «webroot», «application» или «css»

Таким образом, мне нужно изменить только одну строку в одном файле, и изменения затронуты во всех файлах, в которых используется эта переменная.

1 голос
/ 23 марта 2010

Для внешнего интерфейса всегда используйте абсолютные URL-адреса (начните с '/', чтобы при необходимости вы могли переходить с домена на домен).

Для внутреннего типа include() / require() сделайте так, как предлагает Гаурав, и используйте файл конфигурации, который создает константу для представления вашего пути (чтобы вы могли легко изменять ее по мере необходимости из одного места в вашем коде).

Для материала библиотечного типа (т.е. классов, функций и т. Д.), Который вы хотите использовать повторно, я бы добавил это к include_path либо через php.ini (глобальный или локальный), .htaccess (если вы используете apache) или через функцию ini_set(). Таким образом, вы можете включить эти файлы только по имени файла (т.е. <?php include_once('library.php'); ?>)

Если вы идете по маршруту ini_set, взгляните на директиву auto_append (которая, в свою очередь, может быть установлена ​​через php.ini, .htaccess или ini_set) ... таким образом, вы можете добавить файл начальной загрузки к каждому запрос страницы, который устанавливает ваш include_path только для этого приложения без необходимости добавлять оператор ini_set везде, куда вы поворачиваетесь.

С учетом всего сказанного я рекомендую вам:

  • заранее продумайте макет приложения, разработайте общее соглашение и придерживайтесь его.
  • рассмотрите возможность изучения шаблонов проектирования (MVC и др.), Которые помогут вам по-новому взглянуть на то, как вы разрабатываете свои приложения
  • принимает использование прикладной среды (CakePHP, Zend Framework и т. Д.), Которая будет поставляться с предлагаемым (или обязательным) расположением файла / каталога и избавит вас от необходимости управлять расположениями файлов и прочим.

Удачи!

1 голос
/ 23 марта 2010

Если вы переместите / переименуете файл, который связан по всей вашей веб-странице и хотите убедиться, что ссылки по-прежнему работают, я бы написал редирект 303 (где и как зависит ваш веб-сервер и его конфигурация).

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