zelindm/petcreator

otto test

安装: 16

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:laravel

dev-master 2017-10-26 18:04 UTC

This package is not auto-updated.

Last update: 2024-09-21 14:55:55 UTC


README

安装

composer require zelindm/petcreator

在文件 app.php 中连接服务提供者和外观

'providers' => [
    ...
    Zelindm\PetCreator\PetCreatorServiceProvider::class,
    ...
],

'aliases' => [
    ...
    'PetCreator'             => Zelindm\PetCreator\Facades\PetCreatorFacade::class,
    ...
]

任务

为 Laravel 5.4 编写一个服务,作为一个独立的模块,可以通过 composer 从本地目录安装到 vendor 目录的 ../vendor/objects 中

当通过 artisan vendor:publish 发布服务时,在 laravel 的配置目录中应该创建一个名为 objects.php 的配置文件

服务应通过“Objects”别名通过服务外观访问。服务有一个名为 make 的方法,它返回从 objects.php 配置中定义的类对象

在 objects.php 配置中将输入不同的值 '{名称}' => [class => '{类}', age => {年龄}], 例如 'Dog' => ['class' => \Examples\Dogs::class, 'age' => 7], 'Cat' => ['class' => \Examples\Cats::class, 'age' => 3],其中所有类都必须有 age() 方法,该方法返回相应的 age - 配置值,并返回一个字符串,其中包含调用对象的类名

服务不能创建缺少必需方法的类对象。如果请求一个在配置中不存在的类,应抛出 \Examples\ObjectsMakeException::class 类的异常

在 php artisan tinker 中进行测试

$dog = Objects::make('Dog'); \$dog 对象为 \Examples\Dogs 类 $dog->age(); \应返回 7 Objects::make('Cat')->age(); \应返回 3 Objects::make('Cat')->class(); \应返回 (String) '\Examples\Cats'

Objects::make('Human'); // ObjectsMakeException