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
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.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-10-31 06:57:26 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 2026-10-31, PHP 8.4.27:
| Checks | Passed | Skipped | Assertions |
|---|---|---|---|
| Full suite | 1,384 | 0 | 7,378 |
| Database scenarios, per engine/prefix | 474 | 0 | 1,335 |
All 1,384 tests passed, including Redis, PostgreSQL, MySQL, and real HTTP integration checks. The shared database scenarios also passed on SQLite, MySQL, and PostgreSQL with both empty and app_ prefixes; these are repeated scenarios, not additional distinct tests.
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 |