php7 开发框架,Lin是一套基于php7.2的全新web框架

Lin/1.0

68747470733a2f2f706f7365722e707567782e6f72672f6c696e2f6c696e2f762f737461626c6568747470733a2f2f706f7365722e707567782e6f72672f6c696e2f6c696e2f646f776e6c6f61647368747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344372e322d3838393242462e73766768747470733a2f2f706f7365722e707567782e6f72672f6c696e2f6c696e2f6c6963656e7365

介绍

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)

高度优化并整合的组件功能,如数据模型、数据校验、安全场景、视图、路由等。

生产环境和开发环境无缝替换,生产部署极致简单。

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的标准组件。

在app/layer目录中,根据应用复杂度,建立不同的层或建立不同的目录归档不同的层。

在app/block目录中,根据具体业务场景,建立各种块,如数据模型、映射、校验、格式化等。

在app/affix目录中,根据需求建立摆件,如定义事件、路由、多语言、视图页面或json的响应模版。

在app/config目录中,根据实际情况更改配置文件。

在app/lib目录中,存放自己的库函数或第三方类库。

生产环境下,更改public/index.php中启动文件为app/boot.production.php。

开发建议

使用basement组件的情况,使用Linker类来调用,具体见basement。

文件夹全小写。

满足psr-4规则。

使用 / 作为目录分隔符。

详细文档

捐赠

68747470733a2f2f696d672e6c696e2d7068702e636f6d2f646f6e6174696f6e732e706e67

版权信息

作者:林澜叶(linlanye)版权所有。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值