前提
已经成功安装PHP 8.2 和 Laravel 10.x,并且可以正常启动使用。
为什么要用Service
理由很简单,在Laravel中其实各种逻辑的实现都是Service,可以这么说Service才是真正干活的。
如何创建Service
一般来说对Service会有这么几个需求
- 可以用不同的实现去替换同种Service,而不需要大改代码
- 希望能在几乎任何地方可以呼叫到Service,而不需要复杂的代码引用
- 暂时用不到的Service不需要初始化
- 代码里引入一个Service可以自动加载和初始化
常规Service要创建4个Class
- Service Class
- Service Provider Class
- Contract Class
- Facade Class
这儿用一个简单的样例来说明,比如我们需要一个从免费图片网站里拉取图片的服务,假设现在使用 unsplash,这是一个常用的免费图片网站,注册后可以直接申请一个api key,做个demo完全没问题。
那么先建好4个空的Class
- app/Contract/PullImageContract.php
<?php
namespace App\Contracts;
interface PullImageContract
{
/**
* 搜索关键字,返回第一个结果的url
* @return string 图片url
*/
public function pullImageByKeyword(string $