├── backend
├── app
│ ├── Filters
│ │ └── .gitkeep
│ ├── Helpers
│ │ └── .gitkeep
│ ├── Models
│ │ └── .gitkeep
│ ├── Language
│ │ ├── .gitkeep
│ │ └── en
│ │ │ └── Validation.php
│ ├── Libraries
│ │ └── .gitkeep
│ ├── ThirdParty
│ │ └── .gitkeep
│ ├── Database
│ │ ├── Seeds
│ │ │ ├── .gitkeep
│ │ │ ├── DatabaseSeeder.php
│ │ │ └── ClearDatabaseSeeder.php
│ │ └── Migrations
│ │ │ └── .gitkeep
│ ├── .htaccess
│ ├── Views
│ │ ├── errors
│ │ │ ├── cli
│ │ │ │ ├── error_404.php
│ │ │ │ ├── production.php
│ │ │ │ └── error_exception.php
│ │ │ └── html
│ │ │ │ ├── production.php
│ │ │ │ ├── error_400.php
│ │ │ │ ├── error_404.php
│ │ │ │ ├── debug.js
│ │ │ │ └── debug.css
│ │ └── components
│ │ │ └── head.php
│ ├── Config
│ │ ├── Routes.php
│ │ ├── ForeignCharacters.php
│ │ ├── Commands.php
│ │ ├── CURLRequest.php
│ │ ├── Images.php
│ │ ├── Publisher.php
│ │ ├── Honeypot.php
│ │ ├── Optimize.php
│ │ ├── Services.php
│ │ ├── Boot
│ │ │ ├── production.php
│ │ │ ├── development.php
│ │ │ └── testing.php
│ │ ├── Feature.php
│ │ ├── Pager.php
│ │ ├── Validation.php
│ │ ├── Migrations.php
│ │ ├── Events.php
│ │ ├── Kint.php
│ │ ├── Generators.php
│ │ ├── View.php
│ │ ├── Format.php
│ │ ├── Modules.php
│ │ ├── Email.php
│ │ ├── Paths.php
│ │ ├── DocTypes.php
│ │ ├── Security.php
│ │ ├── Encryption.php
│ │ ├── Autoload.php
│ │ ├── Filters.php
│ │ ├── Constants.php
│ │ ├── Cors.php
│ │ ├── Cookie.php
│ │ ├── Routing.php
│ │ ├── Exceptions.php
│ │ ├── Toolbar.php
│ │ ├── ContentSecurityPolicy.php
│ │ ├── Session.php
│ │ ├── Cache.php
│ │ ├── Logger.php
│ │ └── Database.php
│ ├── index.html
│ ├── Controllers
│ │ ├── Home.php
│ │ └── BaseController.php
│ ├── Common.php
│ └── Commands
│ │ └── HealthCheck.php
├── public
│ ├── robots.txt
│ ├── favicon.ico
│ ├── uploads
│ │ └── services
│ │ │ └── 2025
│ │ │ └── 10
│ │ │ └── 1759339433_6ff00b199c90ba4517aa.jpg
│ ├── js
│ │ └── toast.js
│ ├── .htaccess
│ └── index.php
├── tests
│ ├── .htaccess
│ ├── index.html
│ ├── session
│ │ └── ExampleSessionTest.php
│ ├── _support
│ │ ├── Libraries
│ │ │ └── ConfigReader.php
│ │ ├── Models
│ │ │ └── ExampleModel.php
│ │ └── Database
│ │ │ ├── Migrations
│ │ │ └── 2020-02-22-222222_example_migration.php
│ │ │ └── Seeds
│ │ │ └── ExampleSeeder.php
│ ├── database
│ │ └── ExampleDatabaseTest.php
│ ├── unit
│ │ └── HealthTest.php
│ └── README.md
├── writable
│ ├── .htaccess
│ ├── index.html
│ ├── cache
│ │ └── index.html
│ ├── debugbar
│ │ └── index.html
│ ├── logs
│ │ └── index.html
│ ├── session
│ │ └── index.html
│ └── uploads
│ │ └── index.html
├── .env.sample
├── nginx.conf
├── LICENSE
├── Dockerfile
├── composer.json
├── .gitignore
├── env
├── phpunit.xml.dist
├── spark
├── README.md
├── preload.php
└── builds
├── .dockerignore
├── README.Docker.md
├── note.md
├── docs
├── core-engineering-principles.md
├── checklist
│ ├── repo-and-infra.md
│ └── additionals.md
├── v1-dev-manual.md
├── technical-manual.md
└── commit-manual.md
├── compose.yaml
└── .github
└── copilot-instructions.md
/backend/app/Filters/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/backend/app/Helpers/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/backend/app/Models/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/backend/app/Language/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/backend/app/Libraries/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/backend/app/ThirdParty/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/backend/app/Database/Seeds/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/backend/app/Database/Migrations/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/backend/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/backend/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zyx-0314/CI4-template/HEAD/backend/public/favicon.ico
--------------------------------------------------------------------------------
/backend/app/.htaccess:
--------------------------------------------------------------------------------
1 |
Directory access is forbidden.
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /backend/tests/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |Directory access is forbidden.
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /backend/writable/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |Directory access is forbidden.
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /backend/writable/cache/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |Directory access is forbidden.
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /backend/writable/debugbar/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |Directory access is forbidden.
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /backend/writable/logs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |Directory access is forbidden.
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /backend/writable/session/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |Directory access is forbidden.
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /backend/writable/uploads/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |Directory access is forbidden.
9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /backend/.env.sample: -------------------------------------------------------------------------------- 1 | CI_ENVIRONMENT = development 2 | database.default.hostname = mysql 3 | database.default.database = app 4 | database.default.username = app 5 | database.default.password = app 6 | database.default.DBDriver = MySQLi 7 | -------------------------------------------------------------------------------- /backend/app/Controllers/Home.php: -------------------------------------------------------------------------------- 1 | 11 | */ 12 | protected $commands = [ 13 | 'health:check' => \App\Commands\HealthCheck::class, 14 | ]; 15 | } 16 | -------------------------------------------------------------------------------- /backend/app/Database/Seeds/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call('App\\Database\\Seeds\\ClearDatabaseSeeder'); 12 | 13 | // $this->call('App\\Database\\Seeds\\= lang('Errors.weHitASnag') ?>
20 | 21 |76 | 77 | = nl2br(esc($message)) ?> 78 | 79 | = lang('Errors.sorryBadRequest') ?> 80 | 81 |
82 |76 | 77 | = nl2br(esc($message)) ?> 78 | 79 | = lang('Errors.sorryCannotFind') ?> 80 | 81 |
82 |