sikessem/core

用于管理 PHP 变量和值的严格类型的对象。

0.x-dev 2024-09-27 17:57 UTC

This package is auto-updated.

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


README

sikessem-logo


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

高效的依赖注入器和封装器

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

🔖 目录

📋 要求

  • 需要 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 的 GitHub 讨论中 进行。

🔐 安全报告

如果您在 Sikessem 的任何项目中 发现安全漏洞,请通过 SIGUI Kessé Emmanuelcontact@sigui.ci 发送电子邮件。所有安全漏洞都将得到及时解决。

📄 许可证

Sikessem 骨架是开源软件,许可协议为 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。

@siguici 用 ❤︎ 制作。