PHPackages                             lin/lin - 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. lin/lin

ActiveProject[Framework](/categories/framework)

lin/lin
=======

高性能、全组件化、极简主义php7.2框架

1.0.0(7y ago)4231[1 issues](https://github.com/linlanye/lin/issues)Apache-2.0PHPPHP &gt;=7.2.0

Since Jan 28Pushed 7y ago5 watchersCompare

[ Source](https://github.com/linlanye/lin)[ Packagist](https://packagist.org/packages/lin/lin)[ Docs](https://www.lin-php.com)[ RSS](/packages/lin-lin/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependencies (2)Versions (3)Used By (0)

Lin/1.0
=======

[](#lin10)

[![Latest Stable Version](https://camo.githubusercontent.com/1585c46ed91ce94794507af59eb78631532f7e6f099dd60a2420644c97f98a8b/68747470733a2f2f706f7365722e707567782e6f72672f6c696e2f6c696e2f762f737461626c65)](https://packagist.org/packages/lin/lin)[![Total Downloads](https://camo.githubusercontent.com/e3936c8a523aa92cde602f16398dc7887d4b2b2ced6cf83f600377057176b8fc/68747470733a2f2f706f7365722e707567782e6f72672f6c696e2f6c696e2f646f776e6c6f616473)](https://packagist.org/packages/lin/lin)[![PHP Version](https://camo.githubusercontent.com/facf49f38d3f6bf192c14ce71a5e2479a4641044e627d4b7a27e4298a3002704/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344372e322d3838393242462e737667)](http://www.php.net/)[![License](https://camo.githubusercontent.com/61952590fb2bae912faa9df0b9c08da250aa655f94cbcb0b891699541fb709bb/68747470733a2f2f706f7365722e707567782e6f72672f6c696e2f6c696e2f6c6963656e7365)](https://packagist.org/packages/lin/lin)

介绍
--

[](#介绍)

**Lin是**一套基于php7.2的全新web框架，它具有一套全组件化的开发理念，避免了以往web框架可定制性差、扩展开发繁杂、布局耦合度较高等缺点，完美实现了三重分离：应用层、框架层、组件层。使用者只需通过堆积木形式将一个个功能进行组装即可，而无需花费大量精力去理解一个框架的核心理念。Lin解耦了绝大多数开发场景，让协同开发更为简单，并且应用结构从一开始就基于高度弹性化的架构模式，对后续扩展、维护、升级都可以0成本轻松实现。

特性
--

[](#特性)

- 全组件化，框架运行流程完全由使用者自行控制，通过一个个组件堆积而成。
- 自带模拟kv、queue服务器，无需安装memcache和redis等外部环境，并可轻松一键切换。
- 原生透明化支持SQL、Key-Value、Queue等服务器主从、多节点访问。
- 极简主义设计。所有的方法无论命名、调用都保持简单一致，只呈现最基本的php语法。
- 新的组织架构，解决传统MVC模式的短板，可对应用轻量化弹性升级，该架构称为LBA(Layer, Block, Affix，见下述解释)。
- 涵盖web开发的绝大多数场景，组件功能接口简单，学习接近0成本。（参见[lin/components](http://github.com/linlanye/lin-components)）
- 高度优化并整合的组件功能，如数据模型、数据校验、安全场景、视图、路由等。
- 生产环境和开发环境无缝替换，生产部署极致简单。

LBA架构
-----

[](#lba架构)

LBA（Layer, Block, Affix）架构由层、块、摆件三个部分构成，由**林澜叶**独自提出。

- **层**：核心架构所在，由整套不同的逻辑单元组成，彼此之间相互独立，是整个应用的骨架部分。如缓存层、数据访问层、控制器层、响应层等等。不同的层提供不同的应用场景，一个层可以看作一个用于调度不同功能的类。
- **块**：依托于层而存在，为层提供一种功能，是对层功能的具体实现，是整个应用的血肉部分。一个块可以看作是具有某个功能的类，不同的块在同一个层中构成一个完备的应用场景。如在数据访问层中，数据模型提供对数据库的对象化操作，数据格式化器和映射器则提供存储数据到应用数据的一个映射。
- **摆件**：作为对层的点缀或装饰，是一种可选的功能，它的添加和移除对整个应用架构没有影响。不同的摆件可以看作是一种功能扩展，它可以是一个类，也可以是一个脚本，一句代码，起到强化应用的作用。如视图页面、路由文件、语言包等在小型应用中都可以看作摆件，可以无需视图（API开发），也可以无需路由(仅通过层来调度)，更可以无需语言包。

对于MVC架构，Model相当于块，View则为摆件，Controller则对应层。基于MVC的各种变体也能在LBA架构中找到对应，实际上LBA正是对这套架构体系的一个更抽象的扩展，它能够适用于更大型的应用架构中。值得注意的是，LBA架构并没有对功能进行约束，开发者需根据实际情况选型。例如小型应用中路由可以看作摆件，但在大型应用中，路由则应作为层。

目录结构
----

[](#目录结构)

初始主要结构如下：

```
your_app
│
├─app                               应用目录
│  │
│  ├─affix                          摆件目录
│  │  ├─event                       事件目录
│  │  ├─lang                        语言包目录
│  │  ├─response                    响应目录
│  │  │  ├─jsonxml                  json和xml的模版目录
│  │  │  └─view                     视图页面目录
│  │  │
│  │  └─route                       路由规则目录
│  │
│  ├─block                          块目录
│  │  ├─formatter                   数据格式化器目录
│  │  ├─mapper                      数据映射器目录
│  │  ├─model                       数据模型目录
│  │  └─validator                   数据验证器目录
│  │
│  ├─config                         配置目录
│  │  ├─lin-servers.php             服务器配置
│  │  ├─lin-servers.production.php  服务器配置（生产环境）
│  │  ├─lin.php                     组件配置
│  │  └─lin.production.php          组件配置（生产环境）
│  │
│  ├─layer                          层目录
│  │
│  ├─lib                            库目录
│  │  └─helper.php                  lin组件的助手函数
│  │
│  ├─boot.production.php            启动文件（生产环境）
│  ├─boot.php                       启动文件
│  └─register.php                   basement组件注册文件
│
├─public                            入口根目录
│  ├─resource                       资源文件夹
│  └─index.php                      入口文件
│
├─vendor                            组件目录
│  ├─composer                       composer组件
│  ├─basement                       basement组件
│  └─lin                            lin组件
│

```

安装
--

[](#安装)

```
//1.composer方式
composer create-project lin/lin

//2.源码+composer
进入源码根目录，执行composer install

//3.下载压缩文件
https://downloads.lin-php.com/lin-1.0.0.zip

```

使用
--

[](#使用)

- 在`app/boot.php`文件中定义整个应用执行流程。同理编写生产环境的`app/boot.production.php`文件
- 在`app/register.php`文件中注册[basement](http://github.com/linlanye/basement)的标准组件。
- 在`app/layer`目录中，根据应用复杂度，建立不同的层或建立不同的目录归档不同的层。
- 在`app/block`目录中，根据具体业务场景，建立各种块，如数据模型、映射、校验、格式化等。
- 在`app/affix`目录中，根据需求建立摆件，如定义事件、路由、多语言、视图页面或json的响应模版。
- 在`app/config`目录中，根据实际情况更改配置文件。
- 在`app/lib`目录中，存放自己的库函数或第三方类库。
- 生产环境下，更改`public/index.php`中启动文件为`app/boot.production.php`。

开发建议
----

[](#开发建议)

- 使用basement组件的情况，使用`Linker`类来调用，具体见[basement](http://github.com/linlanye/basement)。
- 文件夹全小写。
- 满足psr-4规则。
- 使用 `/` 作为目录分隔符。

详细文档
----

[](#详细文档)

- [github](https://github.com/linlanye/lin-docs)
- [官网](https://docs.lin-php.com)

捐赠
--

[](#捐赠)

[![捐赠林澜叶](https://camo.githubusercontent.com/d1564c70505b5ea82069cab2c3da177f1d950d4ed58424e12f7aba8d57bb2d67/68747470733a2f2f696d672e6c696e2d7068702e636f6d2f646f6e6174696f6e732e706e67)](https://camo.githubusercontent.com/d1564c70505b5ea82069cab2c3da177f1d950d4ed58424e12f7aba8d57bb2d67/68747470733a2f2f696d672e6c696e2d7068702e636f6d2f646f6e6174696f6e732e706e67)

版权信息
----

[](#版权信息)

- 作者：林澜叶(linlanye)版权所有。
- Eemail：
- 开源协议：[Apache-2.0](LICENSE)

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity56

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

2

Last Release

2664d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/933fe7e15e77d7cc8515ffb00919adfb38668a8cccc2869127e7b21084c0cf13?d=identicon)[linlanye](/maintainers/linlanye)

---

Top Contributors

[![linlanye](https://avatars.githubusercontent.com/u/16683274?v=4)](https://github.com/linlanye "linlanye (32 commits)")

---

Tags

frameworkormserverlin

### Embed Badge

![Health badge](/badges/lin-lin/health.svg)

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

PHPackages © 2026

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