Download the PHP package jooservices/state-machine without Composer
On this page you can find all versions of the php package jooservices/state-machine. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download jooservices/state-machine
More information about jooservices/state-machine
Files in jooservices/state-machine
Package state-machine
Short Description A PHP 8.5+ configuration-driven finite state machine for any PHP object
License MIT
Informations about the package state-machine
JOOservices State Machine
The JOOservices State Machine is a PHP 8.5+ configuration-driven finite state machine for any PHP object — DTOs, POPOs, or framework models. Zero framework coupling. State is a string property on the subject.
Package name: jooservices/state-machine
Latest stable release: v4.0.0 — no backward compatibility with the retired v1.x archive.
Install
Quick example
What is supported today
- configuration-driven graphs validated at construction time
can()/apply()/getAvailableTransitions()- pluggable state accessors (property reflection or getter/setter)
- guards and before/after callbacks as class strings
- optional PSR-14 lifecycle events
- multiple independent graphs per subject (separate machine instances)
- pure PHP 8.5+ with no Laravel/Symfony runtime requirement
Important current limitations
- guards and callbacks are constructed with
new $class()(no container resolution) - guard/callback class-strings are validated at config construction (must exist and implement the contract)
- accessors throw
StateAccessExceptionwhen the write target is missing or readonly - event dispatcher is optional; consumers bring their own PSR-14 implementation
- no built-in persistence, Eloquent casts, or service providers
Documentation
Start with:
- Documentation Hub
- Changelog
- Support
- Governance
- Workflows
- phpDocumentor config:
phpdoc.dist.xml - Installation
- Quick Start
Development
Or with Composer inside Docker / host PHP 8.5:
Contributor workflow details live in:
- Setup
- Contributing
- CI/CD
- Release Process
Approved Git flow summary:
- normal feature and fix work branches from
developand PRs back intodevelop - release preparation uses
release/<version>fromdevelop, then PRs intomaster - releases are tagged from
master mastermerges back intodevelopafter release or hotfix completion
Community
- Contributing
- Security Policy
- Code of Conduct
- Support
GitHub Actions and Services
See WORKFLOWS.md. Current coverage:
CI+CI Gate: security, lint matrix, tests, 95% coverageCommitlint+Semantic PR TitleRelease(tag-driven — do not use until owner approvesv4.0.0)- OpenSSF Scorecard / optional Codacy / Fortify when secrets exist
License
This project is licensed under the MIT License.