zelindm / petcreator
otto test
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