abmmhasan/intermix
最新稳定版本:7.1.1
Composer 安装命令:
composer require abmmhasan/intermix
包简介
A Collection of useful PHP class functions.
README 文档
README
InterMix is a modern, lightweight PHP toolkit for developers who value class-oriented design, clean architecture, and fast execution. It combines dependency injection, serialization, macro-style extensibility, and helper utilities with minimal config and maximum control.
🚀 Key Features
- Dependency Injection (DI) — PSR-11 compliant container with:
- attribute-based injection
- scoped lifetimes
- lazy loading
- environment-specific overrides
- debug tracing & definition-cache integration via assignable PSR-6 pool
- Serializer — Closure-aware value serialization and resource handlers
- Fence — Enforce singleton-style class safety
- Remix — Fluent traits, proxies, and global helper functions
- MacroMix — Dynamically extend objects or classes with macros
- Global Utilities — Like
pipe(),retry(),measure()and more
📦 Installation
composer require infocyph/intermix
Supported PHP versions:
| InterMix Version | PHP Version |
|---|---|
| 2.x.x and above | 8.3 or newer |
| 1.x.x | 8.0-8.2 compatible |
⚡ Quick Examples
🧱 Dependency Injection
use function Infocyph\InterMix\container; $c = container(); $c->definitions()->bind('now', fn () => new DateTimeImmutable()); echo $c->get('now')->format('c');
Enable autowiring with attributes:
$c->options()->setOptions( injection: true, methodAttributes: true, propertyAttributes: true );
Tag-based resolution:
$c->definitions()->bind('a', A::class, tags: ['service']); $c->definitions()->bind('b', B::class, tags: ['service']); foreach ($c->findByTag('service') as $svc) { $svc()->handle(); }
See full container guide at: 📖 https://docs.infocyph.com/projects/intermix/di/overview.html
🧬 Dynamic Macros
MacroTest::mix(new class { public function hello($name) { return "Hey, $name!"; } }); echo (new MacroTest)->hello('Ali'); // Hey, Ali!
🧠 Definition Cache (Injectable)
use Psr\Cache\CacheItemPoolInterface; $pool = /* any PSR-6 pool, e.g. from infocyph/cachelayer */; $c->definitions()->enableDefinitionCache($pool);
📚 Documentation
Full documentation available at:
🔗 https://docs.infocyph.com/projects/intermix/
Includes:
- ✅ Getting Started & Quickstart
- 📦 DI Container Guide (bindings, scopes, attributes, lifetimes)
- 🧩 Modules: DI, Serializer, Remix, Fence, MacroMix
- 🧪 Testing & Caching Tips
- 📘 PDF/ePub formats
✅ Testing
composer install
composer test
🤝 Contributing
Got ideas or improvements? Join us!
📂 Open issues 📬 Submit a PR — we welcome quality contributions
🛡 License
MIT Licensed — use it freely, modify it openly.
统计信息
- 总下载量: 74
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 13
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-02-15