sikessem / core
用于管理 PHP 变量和值的严格类型的对象。
0.x-dev
2024-09-27 17:57 UTC
Requires
- php: ^8.2||^8.3
- psr/container: ^2.0
- sikessem/debugger: ^0.0.0
Requires (Dev)
- sikessem/devtools: ^0.8.0
This package is auto-updated.
Last update: 2024-09-27 18:17:21 UTC
README
高效的依赖注入器和封装器
Capsule 是一个库,它使用容器以有组织和集中的方式管理依赖项和对象,从而简化封装。
🔖 目录
📋 要求
- 需要 PHP 8.1+(推荐至少 8.1.14 以避免潜在错误)。
- 需要 Composer v2+ 来管理 PHP 依赖项。
⚡️ 安装
-
通过将
sikessem/capsule
依赖项添加到您的composer.json
文件{ "require" : { "sikessem/capsule": "^0.5" } }
-
或者通过包含依赖项
composer require sikessem/capsule --no-dev
🧑💻 使用
-
使用 Capsule 的接口和特质定义您的自定义组件
<?php namespace Sikessem\Capsule\Sample; use Sikessem\Capsule\Core\IsEncapsulated; interface CustomInterface extends IsEncapsulated { public function getName(): string; public function setName(string $name): void; }
<?php namespace Sikessem\Capsule\Sample; final class CustomClass implements CustomInterface { use CustomTrait; public function __construct(string $name = 'World') { $this->setName($name); } }
<?php namespace Sikessem\Capsule\Sample; use Sikessem\Capsule\Core\HasEncapsulator; trait CustomTrait { use HasEncapsulator; protected string $name; public function getName(): string { return $this->name; } public function setName(string $name): void { $this->name = $name; } }
-
您可以使用组件如下
<?php use Sikessem\Capsule\Sample\CustomClass; $capsule = new CustomClass('Sikessem'); isset($capsule->name); // Returns true echo $capsule->name; // Prints "Sikessem" unset($capsule->name); // Does nothing isset($capsule->name); // Returns true $capsule->value = 'value'; // Throws an exception $capsule->name = 'value'; // Set name to "value" echo $capsule->name; // Prints "value" $capsule->on('hello', function (?string $name = null) { return 'Hello '.($name ?? 'Sikessem').'!'; }); echo $capsule->hello(); //Prints "Hello Sikessem!"
👏 贡献
此存储库的主要目的是继续发展 Sikessem。我们希望使对项目的贡献尽可能简单和透明,并对社区为修复错误和改进所做的贡献表示感激。阅读以下内容以了解您如何参与改进 Sikessem。
👷 行为准则
Sikessem 采用了行为准则,我们期望项目参与者遵守。请阅读 完整文本,以便了解哪些行为将被容忍,哪些行为则不会。
👥 贡献指南
阅读我们的 贡献指南 以了解我们的开发流程,如何提出错误修复和改进建议,以及如何构建和测试您对 Sikessem 的更改。
🔒️ 初学者友好问题
我们有一系列 初学者友好问题,这些问题包含相对有限的错误。这是一个开始的好地方,可以获得经验,并熟悉我们的贡献流程。
💬 讨论
更大的讨论和建议在 Sikessem 的 GitHub 讨论中 进行。
🔐 安全报告
如果您在 Sikessem 的任何项目中 发现安全漏洞,请通过 SIGUI Kessé Emmanuel 的 contact@sigui.ci 发送电子邮件。所有安全漏洞都将得到及时解决。
📄 许可证
Sikessem 骨架是开源软件,许可协议为 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。
由 @siguici 用 ❤︎ 制作。