sikessem/capsule

Capsule 旨在简化依赖项和对象的托管,同时提高封装性和确保代码质量。

v0.5.2 2023-06-22 15:47 UTC

This package is auto-updated.

Last update: 2024-09-27 17:18:02 UTC


README

sikessem-logo


php-icon packagist-version-icon packagist-download-icon license-icon actions-icon pr-icon twitter-icon

高效的依赖注入和封装器

Capsule 是一个库,它使用容器以有组织且集中的方式管理依赖项和对象,从而便于封装。

警告

此包不再维护。请使用 sikessem/core 代替。

🔖 内容

📋 要求

  • 需要 PHP 8.1+(建议至少 8.1.14 以避免潜在错误)。
  • 需要 Composer v2+ 来管理 PHP 依赖项。

⚡️ 安装

使用 Composer 安装 Capsule

  • 通过将 sikessem/capsule 依赖项添加到您的 composer.json 文件中

    {
        "require" : {
            "sikessem/capsule": "^0.5"
        }
    }
  • 或者通过包含依赖项

    composer require sikessem/capsule --no-dev

🧑‍💻 使用

  1. 使用 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;
        }
    }
  2. 您可以使用组件如下

    <?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/community 中进行。

🔐 安全报告

如果您在 Sikessem 中发现安全漏洞,请发送电子邮件至 SIGUI Kessé Emmanuel,邮箱地址为 contact@sigui.ci。所有安全漏洞都将得到及时处理。

Sikessem 用 ❤︎ 制作。