PHPackages                             sixiaoqi/yaf-support - 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. [Framework](/categories/framework)
4. /
5. sixiaoqi/yaf-support

ActiveLibrary[Framework](/categories/framework)

sixiaoqi/yaf-support
====================

基于yaf框架和IOC容器思想实现的二次开发

1.0.4(6y ago)1110MITPHP

Since May 2Pushed 6y ago1 watchersCompare

[ Source](https://github.com/zhanzhaopeng1/yaf-support)[ Packagist](https://packagist.org/packages/sixiaoqi/yaf-support)[ RSS](/packages/sixiaoqi-yaf-support/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (4)Dependencies (3)Versions (6)Used By (0)

yaf-support
===========

[](#yaf-support)

基于yaf框架和laravel框架的融合
--------------------

[](#基于yaf框架和laravel框架的融合)

前言
--

[](#前言)

yaf (六脉神剑) 六脉神剑，并非真剑，乃是以一阳指的指力化作剑气，有质无形，可称无形气剑。

laravel (降龙十八掌) 降龙十八掌天下第一，本身掌法套路就刚猛无比，在加上使用者雄浑的内力，更是无可抵挡

yaf 脉络清晰；框架简洁，易上手；可随心扩展自有功能；由于框架使用扩展形式，所以执行效率更高。

laravel 框架代码优美，整洁，周边丰富，可扩展性强；但框架可读性较差，每次运行加载文件较重，影响执行效率。

故优势互补，以yaf为底，laravel IOC容器思想、中间件、服务注册等贯穿整个yaf生命周期中，使yaf框架 可以更易扩展，代码也更清晰。

说明
--

[](#说明)

```
本版本为V1.0版，还未经过实际项目校验，如有使用中出现问题，可以发送邮件到zhaopeng156@126.com中
共同探讨，如果有更好的想法或者优化也欢迎发送邮件互相切磋讨论，多多益善。

```

设计思路
----

[](#设计思路)

- 容器(Container)

> > > 基于pimple/pimple的容器，贯穿于yaf的全生命周期流程中，index.php入口文件会实例化容器并注册到Yaf\_Registry实例中, 以实现全局使用。

```
        $app = new Application([], realpath(dirname(__FILE__)));
        Yaf_Registry::set('app', $app);
```

- 服务注册(ServiceProvider)

> > > 同样基于pimple/pimple容器，当需要新的中间件，或者新增服务模块时，可以使用服务注册将服务或者中间件注册。

```
        $app = new Application([], realpath(dirname(__FILE__)));
        Yaf_Registry::set('app', $app);

        app()['request'] = function ($c) {
            return new Request('test/test', 'base_uri/test/test');
        };

        app()[Authenticate::class] = function ($c) {
            return new Authenticate();
        };
```

- 中间件(Middleware)

> > > 在整个请求流程的生命周期中，会有一些鉴权、加解密、路由校验、session等中间件在请求到达核心逻辑之前做一些过滤请求 的处理，当有新增或者修改、删除一些过滤逻辑的时候可以在相应的配置文件中修改，做到随意扩展。

```
        $app = new Application([], realpath(dirname(__FILE__)));
        \Yaf_Registry::set('app', $app);

         app()['request'] = function ($c) {
                $request = new Request('test/test', 'base_uri/test/test');
                $request->setShouldMethod('any');
                $request->setMiddleware(['auth']);
                $request->setParam('api_token','12345678');

                return $request;
         };

          app()[Kernel::class] = function ($c) {
                return new Kernel($c);
          };

          arrayConfig()->set('auth', require __DIR__ . '/../src/Auth/config/auth.php');

          $res = app(Kernel::class)->handle(app('request'));
          var_dump(Auth()->id());
          var_dump(Auth()->user());
```

\*核心(Kernel)

> > > 当各个组件、Request、Reponse等注册到服务容器中以后，kernel使用管道顺序调用Middleware 作相应的请求处理。

```
        if ($middlewareList = $request->getMiddleware()) {
              collect($middlewareList)->map(function ($middleware) {
                   $this->middleware[] = $middleware;
              });
        }

        return (new Pipeline($this->app))
               ->send($request)
               ->through($this->middleware)
               ->then(function ($request) {
                    return $request;
        });
```

\*输入/输出(Request/Response)

> > > request和response继承yaf自带的request/response 新增一些必要的数据。一并注册到容器中。

```
         $app = new Application([], realpath(dirname(__FILE__)));
         Yaf_Registry::set('app', $app);

         app()['request'] = function ($c) {
              return new Request('cli', 'cli');
         };
```

\*校验器(validation)

> > > 参考laravel的校验器来做参数的校验，但校验类型与laravel相比较少，具体读源码

```
         validator()->validate([
              'age'  => 'required|int|between:1,100',
              'name' => 'required|string'
         ]);

         $age  = request()->getParam('age');
         $name = request()->getParam('name', 'test');
         var_dump($age);
         var_dump($name);
```

\*日志(monolog)

> > > 完全复用monolog来做为此版本的日志记录工具，以天为单位，每小时记录所有的请求日志，具体代码需要根据实际 项目去配置，本处不做过多讲解。

```
         date_default_timezone_set("PRC");

         $app = new Application([], realpath(dirname(__FILE__)));
         Yaf_Registry::set('app', $app);

         app()['request'] = function ($c) {
               return new Request('cli', 'cli');
         };

         (new ServiceProvider())->boot();

         Log::debug('debug log');
         Log::info('info log');
         Log::notice('notice log');
         Log::error('error log');
         Log::warning('warring log');
```

未完待续
----

[](#未完待续)

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

5

Last Release

2202d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/22952981?v=4)[zhanzhaopeng1](/maintainers/zhanzhaopeng1)[@zhanzhaopeng1](https://github.com/zhanzhaopeng1)

---

Top Contributors

[![zhanzhaopeng1](https://avatars.githubusercontent.com/u/22952981?v=4)](https://github.com/zhanzhaopeng1 "zhanzhaopeng1 (18 commits)")

---

Tags

laravelphpyafyaf-ioc

### Embed Badge

![Health badge](/badges/sixiaoqi-yaf-support/health.svg)

```
[![Health](https://phpackages.com/badges/sixiaoqi-yaf-support/health.svg)](https://phpackages.com/packages/sixiaoqi-yaf-support)
```

###  Alternatives

[magento/community-edition

Magento 2 (Open Source)

12.1k52.1k10](/packages/magento-community-edition)[illuminate/routing

The Illuminate Routing package.

1238.6M2.3k](/packages/illuminate-routing)[elgg/elgg

Elgg is an award-winning social networking engine, delivering the building blocks that enable businesses, schools, universities and associations to create their own fully-featured social networks and applications.

1.7k15.7k5](/packages/elgg-elgg)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[mako/framework

Mako Framework

249170.3k23](/packages/mako-framework)[doppar/framework

The Doppar Framework

366.7k8](/packages/doppar-framework)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
