switon / core
Shared framework contracts, attributes, helpers, and runtime vocabulary for Switon Framework
v1.0.0
2026-06-06 13:43 UTC
Requires
- php: >=8.3
- ext-json: *
- psr/container: ^2.0
Requires (Dev)
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^12.0
README
Switon's shared foundation for autowiring, app metadata, runtime state, context-aware components, and JSON helpers.
Highlights
- Property autowiring:
#[Autowired]injects services, scalars, and arrays from the container. - App and runtime state: app identity, environment, debug mode, timezone, and project-root detection stay explicit.
- Scoped state support:
ContextAware,ContextIsolated, and related helpers keep mutable state controlled. - Common helpers: JSON, strings, random, clock, and path helpers are included.
- Shared contracts: the package exposes the base interfaces other components build on.
Installation
composer require switon/core
Quick Start
use Switon\Core\AppInterface; use Switon\Core\Attribute\Autowired; use Switon\Core\Json; class StatusReporter { #[Autowired] protected AppInterface $app; public function snapshot(): string { return Json::stringify([ 'app' => $this->app->name(), 'env' => $this->app->env(), 'debug' => $this->app->isDebug(), ], JSON_PRETTY_PRINT); } }
Docs: https://docs.switon.dev/latest/core
License
MIT.