tinymvc / tinycore
Core Classes of TinyMVC Framework
Requires
- php: >=8.2
- doctrine/inflector: ^2.0
- fig/http-message-util: ^1.1
- nyholm/psr7: ^1.8
- psr/clock: ^1.0
- psr/container: ^1.1 || ^2.0
- psr/event-dispatcher: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.1 || ^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- psr/log: ^2.0 || ^3.0
- psr/simple-cache: ^2.0 || ^3.0
- tinymvc/laravel-supports: ^1.0
Requires (Dev)
- phpmailer/phpmailer: ^6.9 || ^7.0
- voku/portable-ascii: ^2.0
Suggests
- ext-curl: Required for the HTTP client and S3 disks.
- ext-fileinfo: Required for upload and file MIME detection.
- ext-gd: Required for image manipulation.
- ext-pdo_sqlite: Required when the database connection uses SQLite.
- ext-redis: Required for Redis cache, lock, session, and queue drivers.
- ext-simplexml: Required for listing and copying files on S3-compatible disks.
- doctrine/inflector: Required to use Str::plural() and Stringable::plural() (^2.0).
- league/commonmark: Required to use Str::markdown() and Stringable::markdown() (^2.6).
- phpmailer/phpmailer: Required for the Mail utility and Mail facade (^6.9).
- ramsey/uuid: Required to use Str::uuid() (^4.7).
- voku/portable-ascii: Required for Str::ascii(), Str::slug(), Str::isAscii(), and ASCII validation rules (^2.0).
Provides
None
Conflicts
None
Replaces
None
- dev-main
- v4.2.23
- v4.2.22
- v4.2.21
- v4.2.20
- v4.2.19
- v4.2.18
- v4.2.17
- v4.2.16
- v4.2.15
- v4.2.14
- v4.2.13
- v4.2.12
- v4.2.11
- v4.2.10
- v4.2.9
- v4.2.8
- v4.2.7
- v4.2.6
- v4.2.5
- v4.2.4
- v4.2.3
- v4.2.2
- v4.2.1
- v4.2.0
- v4.1.18
- v4.1.17
- v4.1.16
- v4.1.15
- v4.1.14
- v4.1.13
- v4.1.12
- v4.1.11
- v4.1.10
- v4.1.9
- v4.1.8
- v4.1.7
- v4.1.6
- v4.1.5
- v4.1.4
- v4.1.3
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.7
- v4.0.6
- v4.0.5
- v4.0.4
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- v3.3.37
- v3.3.36
- v3.3.35
- v3.3.34
- v3.3.33
- v3.3.32
- v3.3.31
- v3.3.30
- v3.3.29
- v3.3.28
- v3.3.27
- v3.3.26
- v3.3.25
- v3.3.24
- v3.3.23
- v3.3.22
- v3.3.21
- v3.3.20
- v3.3.19
- v3.3.18
- v3.3.17
- v3.3.16
- v3.3.15
- v3.3.14
- v3.3.13
- v3.3.12
- v3.3.11
- v3.3.10
- v3.3.9
- v3.3.8
- v3.3.7
- v3.3.6
- v3.3.5
- v3.3.4
- v3.3.3
- v3.3.2
- v3.3.1
- v3.3.0
- v3.2.3
- v3.2.2
- v3.2.1
- v3.2.0
- v3.1.9
- v3.1.8
- v3.1.7
- v3.1.6
- v3.1.5
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.20
- v3.0.19
- v3.0.18
- v3.0.17
- v3.0.16
- v3.0.15
- v3.0.14
- v3.0.13
- v3.0.12
- v3.0.11
- v3.0.10
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.3.8
- v2.3.7
- v2.3.6
- v2.3.5
- v2.3.4
- v2.3.3
- v2.3.2
- v2.3.1
- v2.3.0
- v2.2.0
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2026-11-11 05:03:37 UTC
README
TinyCore (tinymvc/tinycore) is the PHP runtime for TinyMVC / Spark, providing framework services under the Spark\ namespace.
Start an application with Skeleton:
composer create-project tinymvc/skeleton myapp
Framework documentation ยท Core development instructions
Development
The bundled TinyMVC Spark skill ships with Composer releases. Maintain its affected references alongside public API changes; keep application conventions in the application's AGENTS.md.
php skills/tinymvc-spark/scripts/api-lookup.php upsert --source=src
Application developers run the same tool from their application root:
php vendor/tinymvc/tinycore/skills/tinymvc-spark/scripts/api-lookup.php upsert
Tests
Clone this repository and run composer install. Release archives omit tests/ but retain the Spark\Testing APIs.
php tests/run.php # Full suite; also composer test php tests/run.php --filter TranslatorTest php tests/database.php # Requires MySQL and PostgreSQL SPARK_TEST_TABLE_PREFIX=app_ php tests/database.php
Verified on 2026-11-08 with PHP 8.4.27.
| Checks | Passed | Skipped | Assertions |
|---|---|---|---|
| Full suite | 1,387 | 0 | 7,416 |
| Database scenarios, per engine/prefix | 474 | 0 | 1,335 |
All 1,387 tests passed, including Redis, PostgreSQL, MySQL, and real HTTP integration checks. Each database run repeated the same 474 scenarios on SQLite, MySQL, or PostgreSQL with an empty or app_ table prefix.
Coverage
| Area | Main checks |
|---|---|
| Database and ORM | Prefixes, schema/constraints, transactions/savepoints, bindings, scoped writes, model identity and connection retention, casts, soft deletes, relations/pivots, aggregates, and pagination |
| Cache and locks | File/database/Redis contracts, helper array writes, expiration and nulls, atomic counters, namespaces, manager lifecycle, independent owners, contention/timeouts, ownership transfer, lease extension/inspection, and safe clearing |
| Queues and sessions | Named connections, claims, deduplication, retries/failures, stale reservations, worker restarts, persistence/expiry, flash data, and invalidation |
| HTTP and validation | Routing, request lifecycle, PSR integration, proxies, middleware, responses/resources, validation boundaries, uploads, and real HTTP client/session transport |
| Authentication | Guards, gates, password/encryption helpers, JWT tokens, revocation, and CSRF |
| Storage | Local filesystem boundaries, upload handling, S3 signing, pagination, and failed/partial transfers through local fixtures |
| Events and telemetry | Wildcard payloads, priorities, one-time listeners, nested dispatch, lazy payloads, observer failure/recursion isolation, HTTP sends/downloads/prepared requests/pools, and service/lifecycle hooks |
| Core services | Blade, container/providers, CLI boot, configuration/environment caching, Tracer logging/error handling, Tinker, dates/localization, URLs, subprocesses, and concurrency |