Создание необходимых каталогов для работы PHP

Файловая структура приложения
А теперь рассмотрим структуру файлов, из которых будет состоять наше при­ложение. Конкретные имена и способы организации каталогов в рамках веб- приложения сами по себе не так важны — важно только то, чтобы все ресурсы бы­ли легкодоступны для поиска и управления.

Все разрабатываемое нами в этой книге приложение будет помещаться в ката­логе /var/www/phpweb2 0 (имя php20 взято из названия книги). Можете, конечно, назвать этот каталог любым другим именем, но в тексте книги к нему еще будет не­сколько отсылок.

Корневой каталог веб-приложения
Необходимо определить корневой каталог, к которому будет обращаться веб­сервер. Именно этот каталог указывается в конфигурационной информации Apache, и именно к нему обращается сервер, когда пользователь запрашивает страницу на веб-сайте. Этот каталог мы назовем htpdocs (полный путь к нему: /var/www/phpweb2 0/htdocs).

Большая часть нашего приложения (например, классы РНР и шаблоны веб­сайта) будет размещаться не в этом каталоге, благодаря чему пользователи не смо­гут напрямую обращаться к этим файлам.

Каталог для хранения данных
Далее нам понадобится каталог для размещения используемых приложением данных (в дополнение к тем, которые будут храниться в базе данных). Он будет со­держать журналы регистрации событий (как системы Apache, так и созданные на­ми), закачанные пользователями на сайт файлы и различные временные данные.

Этот каталог будет называться data и будет содержать несколько подкаталогов для отдельных видов данных. Подкаталоги будут иметь имена logs, uploaded- filesи tmp.

Каталог классов РНР

Следующий необходимый каталог — это каталог include, в котором будут хра­ниться все функции и библиотеки РНР. Кроме нашего собственного кода, здесь же будут размещаться и все готовые сценарии (например, Smarty), заимствованные у других разработчиков. Контроллеры приложения (т.е. сценарии, которые опреде­ляют операции, разрешенные пользователю на веб-сайте) будут располагаться в подкаталоге Controllers каталога include.

После того как мы создадим виртуальный сервер Apache для нашего приложе­ния (в разделе «Конфигурирование веб-сервера»), каталог include будет включен в директиву РНР include_path, чтобы приложение знало, где искать этот код.

Каталог шаблонов
И наконец, нужен еще один каталог для хранения шаблонов веб-сайта. Правда, их можно хранить прямо в каталоге include или htdocs. Но против этого решения говорит то, что они не содержат код РНР (хотя и отвечают за визуальную часть приложения) и не должны быть доступны для прямого обращения (хотя и разметка HTML в них тоже есть). Мы поместим шаблоны в каталог templates.