Обычно стандартные соглашения таковы: как сказал @grepsedawk, вы захотите определить константу, которая содержит корень папки вашего проекта и, если вы можете, корень вашей папки включений:
define('APP_ROOT', dirname(__FILE__));
define('INCLUDE_ROOT', APP_ROOT . "/includes");
Примечание: имя константы должно быть строкой!
Кроме того, вы заметите, что я использую dirname(__FILE__);
. Если вы поместите файл определения констант в подкаталог, вы можете сделать dirname(dirname(__FILE__));
, что эквивалентно ../
.
Теперь несколько других предостережений. Хотя PATH_SEPARATOR
- это крутая константа, она не нужна. Windows принимает / или \ в именах путей, и, поскольку Linux использует только пользователей / в качестве разделителя пути, всегда используйте / вместо взлома кода с повторяющимися ссылками на PATH_SEPARATOR
.
Теперь, когда вы определили свои корневые константы, то, что вы будете делать, когда вам нужен включенный файл конфигурации, будет простым:
include INCLUDE_ROOT . '/path/to/some/file.php';
Возможно, вам понадобятся ваши постоянные определения (define(...)
выше) в скрипте начальной загрузки в вашем корневом каталоге:
www_root/
index.php
bootstrap.php
Начальная загрузка будет содержать определения (или include
файла констант), а также include
любых файлов, которые потребуются КАЖДОЙ страницей.
И, наконец, последнее стандартное соглашение, которое вы можете не использовать, но если вы начнете заниматься объектно-ориентированным программированием, наиболее распространенный метод (стандарт PEAR) - это присвоение имен вашим классам с помощью _ для разделения пространств имен:
class GlobalNamespace_Namespace_Class
//...
И затем организация вашей файловой структуры, отображающей пространства имен в подкаталоги (буквально заменяя все _ на /):
include_dir/
GlobalNamespace/
Namespace/
Class.php
И использование __autoload()
функций для загрузки ваших классов, но это другой вопрос.