Структура приложения
Чтобы получить максимальную отдачу от CodeIgniter, вам необходимо понять, как приложение структурировано по умолчанию, и что вы можете изменить, чтобы удовлетворить потребности вашего приложения.
Директории по умолчанию
После свежей установки имеется шесть директорий: /app, /system, /public, /writable, /tests и, возможно, /docs. Каждая из этих директорий выполняет очень специфическую роль.
app
Директория app содержит весь код вашего приложения. Она поставляется со структурой по умолчанию, которая хорошо подходит для многих приложений. Ниже приведены основные папки:
/app
/Config Stores the configuration files
/Controllers Controllers determine the program flow
/Database Stores the database migrations and seeds files
/Filters Stores filter classes that can run before and after controller
/Helpers Helpers store collections of standalone functions
/Language Multiple language support reads the language strings from here
/Libraries Useful classes that don't fit in another category
/Models Models work with the database to represent the business entities.
/ThirdParty ThirdParty libraries that can be used in application
/Views Views make up the HTML that is displayed to the client.
Так как директория app уже использует пространства имен, вы можете свободно изменять структуру этой директории в соответствии с потребностями вашего приложения. Например, вы можете начать использовать паттерн Repository и Entity Models для работы с данными. В этом случае вы можете переименовать директорию Models в Repositories, и добавить новую директорию Entities.
Примечание
Однако, если вы переименуете директорию Controllers, вы не сможете использовать автоматический метод маршрутизации к контроллерам и вам необходимо будет определить все маршруты в файле маршрутов.
Все файлы в этой директории находятся под пространством имен App, хотя вы можете изменить это в файле app/Config/Constants.php.
system
Эта директория хранит файлы, составляющие сам фреймворк. Хотя у вас есть большая гибкость в том, как вы используете директорию приложения, файлы в директории system не должны изменяться. Вместо этого вы должны расширять классы или создавать новые классы, чтобы обеспечить желаемую функциональность.
Все файлы в этой директории находятся под пространством имен CodeIgniter.
public
Папка public содержит доступную через браузер часть вашего веб-приложения, предотвращая прямой доступ к исходному коду. Она содержит основной файл .htaccess, index.php и любые добавляемые вами активы приложения, такие как CSS, javascript или изображения.
Эта папка предназначена для того, чтобы быть «корнем сайта» вашего сайта, и ваш веб-сервер будет настроен на указание на нее.
writable
Эта директория содержит все директории, которые могут потребоваться для записи в ходе работы приложения. Это включает директории для хранения файлов кэша, логов и любых загрузок, которые может отправлять пользователь. Вы должны добавить любые другие директории, которые вашему приложению понадобятся для записи сюда. Это позволяет вам сохранить другие основные директории не-записываемыми, как дополнительную меру безопасности.
tests
Эта директория предназначена для хранения файлов тестов. Директория _support содержит различные имитационные классы и другие утилиты, которые вы можете использовать при написании тестов. Эта директория не должна передаваться на ваши серверы производства.
docs
Если эта директория является частью вашего проекта, она содержит локальную копию Руководства пользователя CodeIgniter4.
Изменение расположения директорий
Если вы переместили любые основные директории, вы можете изменить настройки конфигурации внутри app/Config/Paths.php.
Пожалуйста, прочитайте Управление вашими приложениями
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/user_guide/concepts/structure.html