(4). app\Models\CourseModel.php:
namespace App\Models;
class CourseModel {
/**
* @var $courseMain CourseMain // 这里对应上面生成的CourseMian.php中的类,否则下面toArray方法不会自动出现.
*/
protected $courseMain = null;
/**
* @var $courseMetas CourseMetas
*/
protected $courseMetas = null;
public function toArray(): array
{
return [
'main' => $this->courseMain->toArray(),
'meta' => $this->courseMetas->toArray()
];
}
public function getCourseMain()
{
return $this->courseMain;
}
public function setCourseMain($courseMain): void
{
$this->courseMain = $courseMain;
}
public function getCourseMetas()
{
return $this->courseMetas;
}
public function setCourseMetas($courseMetas): void
{
$this->courseMetas = $courseMetas;
}
}
注:
①. 自动生成getters和setters:
按alt + insert弹出以下对话框,再选"Getters and Setters".
2. RPC客户端:
2.1 swoft框架RPC Client直连调用:
以下使用是在另一个http api中访问.
(1). 复制接口:
app\Rpc\Lib\ICourse.php:
namespace App\Rpc\Lib;
interface ICourse {
public function list($size);
public function get($id);
}
(2). 增加一个course服务:
use Swoft\Rpc\Client\Client as ServiceClient;
use Swoft\Rpc\Client\Pool as ServicePool;
$setting = [
'timeout' => 0.5,
'connect_timeout' => 1.0,
'write_timeout' => 10.0,
'read_timeout' => 0.5,
];
return [
'course' => [
'class' => ServiceClient::class,
'host' => '192.168.33.88', // RPC服务器的地址
'port' => 8307, // RPC的端口
'setting' => $setting,
'packet' => bean('rpcClientPacket')
],
'course.pool' => [
'class' => ServicePool::class,
'client' => bean('course'),
],
];