PHPackages                             abovesky/laravel-yar - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. abovesky/laravel-yar

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

abovesky/laravel-yar
====================

Yar的Laravel封装

v1.0.1(4y ago)010MITPHPPHP &gt;=7.1.0

Since Aug 6Pushed 4y ago1 watchersCompare

[ Source](https://github.com/abovesky/laravel-yar)[ Packagist](https://packagist.org/packages/abovesky/laravel-yar)[ RSS](/packages/abovesky-laravel-yar/feed)WikiDiscussions main Synced yesterday

READMEChangelog (2)Dependencies (1)Versions (3)Used By (0)

Yar 的 Laravel 封装
================

[](#yar-的-laravel-封装)

安装&amp;配置
---------

[](#安装配置)

1. 当前环境装有 yar 、 msgpack 扩展：

```
pecl install msgpack
pecl install yar
```

2. 在当前项目下执行：

```
composer require abovesky/laravel-yar -vvv
```

3. 配置

```
php artisan vendor:publish --provider="Abovesky\LaravelYar\ServiceProvider"
```

会复制三个配置文件到 config.php 目录下，分别为 yar.php：yar 运行时配置 yar-services.php：rpc 服务注册映射表 yar-map.php：mapName 与 接口参数对应表

4. 改中间件 在app/Http/Middleware/VerifyCsrfToken.php 中的 except 数组中加上

```
protected $except = [
    '/yar/*',
];
```

跳过 csrf 验证

原理解释
----

[](#原理解释)

同一个 Laravel 框架可以提供多个不同模块的服务，使用 url 表示其模块地址和服务（后文讲），在不同服务中注册不同的方法去执行。 客户端通过对应的地址执行方法，这个时候 yar 使用其自定义的规则去 curl 服务端，取回数据。在同机器上速度远远大于正常的 http 请求。 说不清。。自己百度。。

使用
--

[](#使用)

### 服务端

[](#服务端)

我们注册了一个路由用来代替 yar example 中的 server.php ，每次访问时会通过 `Abovesky/LaravelYar/Controllers/` 引导执行 `app/Services`目录下的服务。客户端可以通过路由地址进行访问：

```
http://hostname/yar/{service}

```

在App/Services中的文件需 extends Abovesky/LaravelYar/YarServices

Example Code

```
