您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
Daniel Covington 17e2750f25 Add framework guide and fix session/migration/error-handler bugs 1周前
app Add framework guide and fix session/migration/error-handler bugs 1周前
config Switch default database to SQLite and add phpLiteAdmin 1周前
database/migrations init 1周前
docker Switch default database to SQLite and add phpLiteAdmin 1周前
docs Add framework guide and fix session/migration/error-handler bugs 1周前
framework Add framework guide and fix session/migration/error-handler bugs 1周前
public init 1周前
resources Add framework guide and fix session/migration/error-handler bugs 1周前
storage init 1周前
tests init 1周前
.env.example Switch default database to SQLite and add phpLiteAdmin 1周前
.gitignore init 1周前
Dockerfile Switch default database to SQLite and add phpLiteAdmin 1周前
command.php init 1周前
composer.json init 1周前
composer.lock init 1周前
docker-compose.yml Switch default database to SQLite and add phpLiteAdmin 1周前
phpunit.xml init 1周前
readme.md Add framework guide and fix session/migration/error-handler bugs 1周前
server.php init 1周前

readme.md

Whoosh website

To run the local development server, try:

export PHP_ENV=prod && php -S 127.0.0.1:8000 -t .

To make requests with cURL, try:

curl -X DELETE http://127.0.0.1:8000/old-home

Running with Docker

docker compose up -d --build

This starts two services:

  • app — nginx + php-fpm, served at http://localhost:8080
  • db — MySQL 8, exposed on host port 33060 (only used if DB_CONNECTION=mysql)

The default database connection is SQLite (database/database.sqlite), configured via DB_CONNECTION in .env / docker-compose.yml. On first boot the app container automatically creates the SQLite file with the correct permissions and runs migrations. To switch to MySQL instead, set DB_CONNECTION=mysql in docker-compose.yml.

To run migrations manually (e.g. after adding a new migration file):

docker compose exec app php command.php migrate
docker compose exec app php command.php migrate --fresh   # drops all tables first, for a clean slate

phpLiteAdmin

A SQLite admin UI is available at http://localhost:8081, password admin (change it via the PHPLITEADMIN_PASSWORD environment variable in docker-compose.yml). It's a development-only tool — don't expose port 8081 outside your local machine.

Framework guide

This app is built on a small custom MVC framework in framework/. See docs/framework.md for how routing, controllers, views, models/migrations, validation, sessions, caching, queues, and the CLI commands all work.

Powered by TurnKey Linux.