Switon's shared foundation for autowiring, app metadata, runtime state, context-aware components, and JSON helpers.
- 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.
composer require switon/coreuse 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
MIT.