aedart/laravel-helpers

此包已被废弃且不再维护。作者建议使用 aedart/athenaeum 包。

为Laravel的一些核心包提供获取器和设置器的实用程序包。此包利用Laravel的原生Facades,在没有提供自定义实例的情况下作为后备使用。

5.1.0 2018-10-13 16:39 UTC

This package is auto-updated.

Last update: 2022-02-01 12:51:38 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

废弃 - Laravel Helpers

该包已被 aedart/athenaeum 替代

获取器和设置器实用程序包,用于Laravel的一些核心包。

当没有提供自定义实例时,此包将使用Laravel的原生Facades作为后备。

内容

何时使用此包

  • 当你的组件依赖于Laravel的一个或多个原生组件时
  • 当你有强烈的需要与这些依赖进行接口交互时
  • 当你需要能够设置不同实例的给定原生Laravel组件时,例如你实现的配置存储库版本

何时不使用此包

如果你使用的是现代IDE,则添加的PHPDoc将确保各种方法的返回类型提示。然而,你不应该盲目地使用这些辅助器,只是为了获取代码提示,对于Laravel的Facades。如果你只是寻求这个,那么Barry vd. Heuvel的Laravel IDE Helper Generator包,可能是一个更好的解决方案。

如何安装

composer require aedart/laravel-helpers

此包使用composer。如果你不知道它是什么的或它是如何工作的,我建议你在尝试使用此包之前先阅读一些关于它的内容。

快速入门

组件感知接口和组件特性

让我们假设你有一些类型的组件,需要知道配置存储库。你可以通过实现ConfigAware接口来确保这一点。此外,通过ConfigTrait特性,还可以提供默认实现。

<?php
use Aedart\Laravel\Helpers\Contracts\Config\ConfigAware;
use Aedart\Laravel\Helpers\Traits\Config\ConfigTrait;

class MyComponent implements ConfigAware
{
    use ConfigTrait;
}

现在,您的组件可以设置和获取 Laravel 的 \Illuminate\Contracts\Config\Repository 的实例。这意味着,如果您有此类存储库的自定义实现,则可以在组件中指定它;

<?php

// Somewhere in you application...
$myComponent = new MyComponent();
$myComponent->setConfig($myCustomConfigRepository);

默认回退到 Laravel 的 Facades

所有特性都默认有一个回退方法,该方法调用 Laravel 对应的 Facades,确保即使没有指定实例,也会返回一个组件;

<?php

// When no custom configuration repository has been specified... 
$myComponent = new MyComponent();
$configRepository = $myComponent->getConfig(); // Uses fallback, invokes the `\Illuminate\Support\Facades\Config`, which is then resolved from the IoC Service Container 

Laravel 应用程序内的使用

您不需要任何特殊的配置或服务提供者。只需确保您已将此软件包作为依赖项要求,您就可以开始了。

Laravel 应用程序之外

如果您计划在 Laravel 应用程序之外使用此软件包,则可能需要额外的依赖项。

示例

如果您需要处理文件系统组件,则必须要求 Laravel 的文件系统软件包;

composer require illuminate/filesystem

IoC 服务容器 - 无回退

如果此软件包在 Laravel 应用程序之外使用,则对于任何实现的特征,都不会提供回退。如果需要回退,则由您提供。如果是这种情况,则可以在您的组件中重写 getDefaultXZY 方法。

<?php

use Aedart\Laravel\Helpers\Contracts\Config\ConfigAware;
use Aedart\Laravel\Helpers\Traits\Config\ConfigTrait;
use Illuminate\Contracts\Config\Repository;
use Illuminate\Config\Repository as ConfigRepo;

class MyComponent implements ConfigAware
{
    use ConfigTrait;
    
    public function getDefaultConfig() : Repository
    {
        return new ConfigRepo(); // Please note that this repository will NOT store values statically!
    }
}

作为替代方案,您还可以绑定依赖项并继续使用 Facades。有关 Laravel 的 IoC 服务容器 的更多信息,请参阅相关内容。

贡献

您是否发现了缺陷(错误或设计缺陷),或者您希望改进?在以下章节中,您可能会找到一些有用的信息,说明您如何帮助此项目。无论如何,我感谢您抽出时间帮助我提高项目的成果和整体质量。

错误报告

如果您确信您发现了错误,那么至少您应该创建一个新的问题。在给定的问题中,您至少应该描述以下内容;

  • 缺陷位于何处
  • 对缺陷的良好、简短且精确的描述(为什么是缺陷)
  • 如何复制缺陷
  • 可能的解决方案,如何解决缺陷

当有时间时,我会审查您的问题并采取行动。

分支、代码并发送拉取请求

一份良好且写得好的错误报告会对我有很大帮助。不过,如果您能够或愿意自己解决缺陷,这里是如何做的;

  • 分支此项目
  • 为给定的缺陷修复创建一个新的本地开发分支
  • 编写代码/更改
  • 创建可执行的测试用例(证明您的更改是稳固的!)
  • 提交并将更改推送到您的分支存储库
  • 发送带有更改的拉取请求
  • 喝一杯 啤酒 - 您应得的 :)

一旦我收到您的拉取请求(并且有时间处理),我将审查您的更改并将其合并到这个项目中。如果没有,我会通知您我为什么选择不合并。

致谢

版本控制

此包遵循语义版本控制 2.0.0

许可证

BSD-3-Clause,请阅读此包中包含的LICENSE文件