Package Design Principles in Practice
summary
A concrete refactor of a PHP package ecosystem is presented: the infection project is split into a core package plus adapter packages, with interfaces extracted to avoid cyclic dependencies and reduce dependency instability. A Composer plugin is added to auto-install adapters and generate auto-registration config for zero-configuration usage; local development uses Composer path repositories and Symfony-style discovery. The talk measures instability and abstractness, and reports the split reduces irrelevant dependencies and semver pain, though it increases CI and release tooling complexity.
AI-written summary · about
chapters (11)
- 0:00Package design intro
- 2:10Release equivalence and reuse
- 8:03Reasons for changes
- 12:40Package coupling principles
- 16:30Stable dependencies principle
- 20:43Stable abstractions principle
- 22:50Problems after split
- 29:13Adapter auto-setup
- 31:21Monolith vs repos vs monorepo
- 37:45Approach pros and cons
- 38:07Q&A








