PHPackages                             kwin/yrphp - 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. kwin/yrphp

ActiveProject[Framework](/categories/framework)

kwin/yrphp
==========

The YrPHP Framework.

5.0.1(5y ago)11464MITPHPPHP &gt;=7.0.0

Since Jul 11Pushed 5y ago2 watchersCompare

[ Source](https://github.com/kwinH/YrPHP)[ Packagist](https://packagist.org/packages/kwin/yrphp)[ Docs](https://github.com/kwinH/YrPHP)[ RSS](/packages/kwin-yrphp/feed)WikiDiscussions master Synced 4w ago

READMEChangelog (5)Dependencies (1)Versions (7)Used By (0)

- [简介](#%E7%AE%80%E4%BB%8B)
- [安装YrPHP](#%E5%AE%89%E8%A3%85yrphp)
    - [通过 Composer Create-Project](#%E9%80%9A%E8%BF%87-composer-create-project)
    - [Git安装](#git%E5%AE%89%E8%A3%85)
    - [测试](#%E6%B5%8B%E8%AF%95)
- [目录结构](#%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84)
- [入口文件](#%E5%85%A5%E5%8F%A3%E6%96%87%E4%BB%B6)
- [应用目录](#%E5%BA%94%E7%94%A8%E7%9B%AE%E5%BD%95)
    - [系统核心常量](#%E7%B3%BB%E7%BB%9F%E6%A0%B8%E5%BF%83%E5%B8%B8%E9%87%8F)
- [核心](#%E6%A0%B8%E5%BF%83)
    - [路由](#%E8%B7%AF%E7%94%B1)
        - [基本路由](#%E5%9F%BA%E6%9C%AC%E8%B7%AF%E7%94%B1)
            - [为多重动作注册路由](#%E4%B8%BA%E5%A4%9A%E9%87%8D%E5%8A%A8%E4%BD%9C%E6%B3%A8%E5%86%8C%E8%B7%AF%E7%94%B1)
        - [基础路由参数](#%E5%9F%BA%E7%A1%80%E8%B7%AF%E7%94%B1%E5%8F%82%E6%95%B0)
        - [可选的路由参数](#%E5%8F%AF%E9%80%89%E7%9A%84%E8%B7%AF%E7%94%B1%E5%8F%82%E6%95%B0)
        - [正则表达式限制参数](#%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E9%99%90%E5%88%B6%E5%8F%82%E6%95%B0)
            - [全局限制](#%E5%85%A8%E5%B1%80%E9%99%90%E5%88%B6)
    - [命名路由](#%E5%91%BD%E5%90%8D%E8%B7%AF%E7%94%B1)
        - [路由群组和命名路由](#%E8%B7%AF%E7%94%B1%E7%BE%A4%E7%BB%84%E5%92%8C%E5%91%BD%E5%90%8D%E8%B7%AF%E7%94%B1)
        - [对命名路由生成 URLs](#%E5%AF%B9%E5%91%BD%E5%90%8D%E8%B7%AF%E7%94%B1%E7%94%9F%E6%88%90-urls)
    - [路由群组](#%E8%B7%AF%E7%94%B1%E7%BE%A4%E7%BB%84)
        - [中间件](#%E4%B8%AD%E9%97%B4%E4%BB%B6)
        - [命名空间](#%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4)
        - [路由前缀](#%E8%B7%AF%E7%94%B1%E5%89%8D%E7%BC%80)
    - [RESTful 资源控制器](#restful-%E8%B5%84%E6%BA%90%E6%8E%A7%E5%88%B6%E5%99%A8)
        - [由资源控制器处理的行为](#%E7%94%B1%E8%B5%84%E6%BA%90%E6%8E%A7%E5%88%B6%E5%99%A8%E5%A4%84%E7%90%86%E7%9A%84%E8%A1%8C%E4%B8%BA)
        - [部分资源路由](#%E9%83%A8%E5%88%86%E8%B5%84%E6%BA%90%E8%B7%AF%E7%94%B1)
        - [命名资源路由](#%E5%91%BD%E5%90%8D%E8%B5%84%E6%BA%90%E8%B7%AF%E7%94%B1)
        - [嵌套资源](#%E5%B5%8C%E5%A5%97%E8%B5%84%E6%BA%90)
        - [附加资源控制器](#%E9%99%84%E5%8A%A0%E8%B5%84%E6%BA%90%E6%8E%A7%E5%88%B6%E5%99%A8)
    - [隐式控制器](#%E9%9A%90%E5%BC%8F%E6%8E%A7%E5%88%B6%E5%99%A8)
        - [分派路由名称](#%E5%88%86%E6%B4%BE%E8%B7%AF%E7%94%B1%E5%90%8D%E7%A7%B0)
    - [路由缓存](#%E8%B7%AF%E7%94%B1%E7%BC%93%E5%AD%98)
    - [URI](#uri)
    - [添加 URL 后缀](#%E6%B7%BB%E5%8A%A0-url-%E5%90%8E%E7%BC%80)
- [cli命令行模式](#cli%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%A8%A1%E5%BC%8F)
    - [实现代码提示、跟踪和自动补全](#%E5%AE%9E%E7%8E%B0%E4%BB%A3%E7%A0%81%E6%8F%90%E7%A4%BA%E8%B7%9F%E8%B8%AA%E5%92%8C%E8%87%AA%E5%8A%A8%E8%A1%A5%E5%85%A8)
- [中间件](#%E4%B8%AD%E9%97%B4%E4%BB%B6-1)
    - [创建一个中间件](#%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E4%B8%AD%E9%97%B4%E4%BB%B6)
    - [调用](#%E8%B0%83%E7%94%A8)
    - [规则](#%E8%A7%84%E5%88%99)
- [依赖注入](#%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5)
- [配置](#%E9%85%8D%E7%BD%AE)
    - [读取配置](#%E8%AF%BB%E5%8F%96%E9%85%8D%E7%BD%AE)
    - [动态配置](#%E5%8A%A8%E6%80%81%E9%85%8D%E7%BD%AE)
    - [批量设置：](#%E6%89%B9%E9%87%8F%E8%AE%BE%E7%BD%AE)
    - [加载配置文件](#%E5%8A%A0%E8%BD%BD%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6)
- [视图](#%E8%A7%86%E5%9B%BE)
    - [配置](#%E9%85%8D%E7%BD%AE-1)
        - [加载视图](#%E5%8A%A0%E8%BD%BD%E8%A7%86%E5%9B%BE)
        - [给视图添加动态数据](#%E7%BB%99%E8%A7%86%E5%9B%BE%E6%B7%BB%E5%8A%A0%E5%8A%A8%E6%80%81%E6%95%B0%E6%8D%AE)
        - [视图缓存](#%E8%A7%86%E5%9B%BE%E7%BC%93%E5%AD%98)
- [模版](#%E6%A8%A1%E7%89%88)
    - [模版继承](#%E6%A8%A1%E7%89%88%E7%BB%A7%E6%89%BF)
        - [控制器中调用](#%E6%8E%A7%E5%88%B6%E5%99%A8%E4%B8%AD%E8%B0%83%E7%94%A8)
        - [定义页面布局layout.php](#%E5%AE%9A%E4%B9%89%E9%A1%B5%E9%9D%A2%E5%B8%83%E5%B1%80layoutphp)
        - [继承页面布局 index.php](#%E7%BB%A7%E6%89%BF%E9%A1%B5%E9%9D%A2%E5%B8%83%E5%B1%80-indexphp)
        - [test.php](#testphp)
        - [最后解析成：](#%E6%9C%80%E5%90%8E%E8%A7%A3%E6%9E%90%E6%88%90)
    - [变量输出](#%E5%8F%98%E9%87%8F%E8%BE%93%E5%87%BA)
    - [输出函数返回值](#%E8%BE%93%E5%87%BA%E5%87%BD%E6%95%B0%E8%BF%94%E5%9B%9E%E5%80%BC)
    - [运算符](#%E8%BF%90%E7%AE%97%E7%AC%A6)
    - [包含文件](#%E5%8C%85%E5%90%AB%E6%96%87%E4%BB%B6)
    - [赋值](#%E8%B5%8B%E5%80%BC)
        - [将函数赋值](#%E5%B0%86%E5%87%BD%E6%95%B0%E8%B5%8B%E5%80%BC)
    - [判断](#%E5%88%A4%E6%96%AD)
    - [循环](#%E5%BE%AA%E7%8E%AF)
        - [for](#for)
        - [while](#while)
    - [使用php代码](#%E4%BD%BF%E7%94%A8php%E4%BB%A3%E7%A0%81)
    - [自定义标签](#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A0%87%E7%AD%BE)
        - [使用](#%E4%BD%BF%E7%94%A8)
        - [在模版中调用](#%E5%9C%A8%E6%A8%A1%E7%89%88%E4%B8%AD%E8%B0%83%E7%94%A8)
    - [表单](#%E8%A1%A8%E5%8D%95)
        - [实例：](#%E5%AE%9E%E4%BE%8B)
        - [开启表单](#%E5%BC%80%E5%90%AF%E8%A1%A8%E5%8D%95)
        - [CSRF 保护](#csrf-%E4%BF%9D%E6%8A%A4)
        - [标签（Label）](#%E6%A0%87%E7%AD%BElabel)
        - [文字字段](#%E6%96%87%E5%AD%97%E5%AD%97%E6%AE%B5)
        - [多行文本域](#%E5%A4%9A%E8%A1%8C%E6%96%87%E6%9C%AC%E5%9F%9F)
        - [密码字段](#%E5%AF%86%E7%A0%81%E5%AD%97%E6%AE%B5)
        - [隐藏域](#%E9%9A%90%E8%97%8F%E5%9F%9F)
        - [复选框、单选按钮](#%E5%A4%8D%E9%80%89%E6%A1%86%E5%8D%95%E9%80%89%E6%8C%89%E9%92%AE)
        - [下拉框](#%E4%B8%8B%E6%8B%89%E6%A1%86)
        - [按钮](#%E6%8C%89%E9%92%AE)
- [模型](#%E6%A8%A1%E5%9E%8B)
    - [数据库配置](#%E6%95%B0%E6%8D%AE%E5%BA%93%E9%85%8D%E7%BD%AE)
    - [模型定义](#%E6%A8%A1%E5%9E%8B%E5%AE%9A%E4%B9%89)
    - [模型实例化](#%E6%A8%A1%E5%9E%8B%E5%AE%9E%E4%BE%8B%E5%8C%96)
        - [M(\['模型名'\]);](#m%E6%A8%A1%E5%9E%8B%E5%90%8D)
    - [CURL](#curl)
        - [Active Record 模式](#active-record-%E6%A8%A1%E5%BC%8F)
            - [删除数据DELETE](#%E5%88%A0%E9%99%A4%E6%95%B0%E6%8D%AEdelete)
            - [修改数据](#%E4%BF%AE%E6%94%B9%E6%95%B0%E6%8D%AE)
            - [查询数据](#%E6%9F%A5%E8%AF%A2%E6%95%B0%E6%8D%AE)
    - [事务](#%E4%BA%8B%E5%8A%A1)
    - [错误调试](#%E9%94%99%E8%AF%AF%E8%B0%83%E8%AF%95)
    - [数据缓存](#%E6%95%B0%E6%8D%AE%E7%BC%93%E5%AD%98)
    - [数据库缓存](#%E6%95%B0%E6%8D%AE%E5%BA%93%E7%BC%93%E5%AD%98)
        - [在配置文件中配置数据库相关配置](#%E5%9C%A8%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E4%B8%AD%E9%85%8D%E7%BD%AE%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9B%B8%E5%85%B3%E9%85%8D%E7%BD%AE)
    - [使用多数据库连接](#%E4%BD%BF%E7%94%A8%E5%A4%9A%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5)
    - [数据预处理——访问器和修改器](#%E6%95%B0%E6%8D%AE%E9%A2%84%E5%A4%84%E7%90%86%E8%AE%BF%E9%97%AE%E5%99%A8%E5%92%8C%E4%BF%AE%E6%94%B9%E5%99%A8)
        - [定义一个访问器](#%E5%AE%9A%E4%B9%89%E4%B8%80%E4%B8%AA%E8%AE%BF%E9%97%AE%E5%99%A8)
        - [定义一个修改器](#%E5%AE%9A%E4%B9%89%E4%B8%80%E4%B8%AA%E4%BF%AE%E6%94%B9%E5%99%A8)
- [表单验证](#%E8%A1%A8%E5%8D%95%E9%AA%8C%E8%AF%81)
- [系统函数](#%E7%B3%BB%E7%BB%9F%E5%87%BD%E6%95%B0)
- [创造自己的类库](#%E5%88%9B%E9%80%A0%E8%87%AA%E5%B7%B1%E7%9A%84%E7%B1%BB%E5%BA%93)
    - [loadClass($className)以单例模式实例化类](#loadclassclassname%E4%BB%A5%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F%E5%AE%9E%E4%BE%8B%E5%8C%96%E7%B1%BB)
- [系统类库(YrPHP/Libs)](#%E7%B3%BB%E7%BB%9F%E7%B1%BB%E5%BA%93yrphplibs)
    - [加密类 Crypt](#%E5%8A%A0%E5%AF%86%E7%B1%BB-----crypt)
        - [配置密钥](#%E9%85%8D%E7%BD%AE%E5%AF%86%E9%92%A5)
        - [加密解密](#%E5%8A%A0%E5%AF%86%E8%A7%A3%E5%AF%86)
    - [数组类](#%E6%95%B0%E7%BB%84%E7%B1%BB)
    - [文件处理类 File](#%E6%96%87%E4%BB%B6%E5%A4%84%E7%90%86%E7%B1%BB-file)
    - [文件上传类 Uoload](#%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E7%B1%BB-uoload)
        - [上传配置设置](#%E4%B8%8A%E4%BC%A0%E9%85%8D%E7%BD%AE%E8%AE%BE%E7%BD%AE)
        - [init($config)参数初始化](#initconfig%E5%8F%82%E6%95%B0%E5%88%9D%E5%A7%8B%E5%8C%96)
        - [uploadFile($field)文件上传](#uploadfilefield%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0)
        - [getFileInfo($inputName=null);获得上传文件相关属性](#getfileinfoinputnamenull%E8%8E%B7%E5%BE%97%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%E7%9B%B8%E5%85%B3%E5%B1%9E%E6%80%A7)
        - [getError($errorCode = null)](#geterrorerrorcode--null)
    - [图像处理类 Image](#%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86%E7%B1%BB-image)
    - [CURL类 Curl](#curl%E7%B1%BB-----curl)
    - [验证码类 VerifyCode](#%E9%AA%8C%E8%AF%81%E7%A0%81%E7%B1%BB---verifycode)
    - [分页类](#%E5%88%86%E9%A1%B5%E7%B1%BB)
    - [验证类 Validate](#%E9%AA%8C%E8%AF%81%E7%B1%BB-----validate)
    - [购物车类 Cart](#%E8%B4%AD%E7%89%A9%E8%BD%A6%E7%B1%BB---cart)
    - [Email 类 PHPMailer](#email-%E7%B1%BB---phpmailer)

简介
==

[](#简介)

yrPHP运用大量的单例及工厂模式，确保用最少的资源做最多的事，采用了composer自动加载，无需手动加载类库文件，还集成了缓存技术及页面静态化技术，确保运行速度及响应速度

安装YrPHP
=======

[](#安装yrphp)

#### 通过 Composer Create-Project

[](#通过-composer-create-project)

```
composer create-project kwin/yrphp yrphp

```

#### Git安装

[](#git安装)

> YrPHP拆分为多个仓库，主要包括：
>
> 之所以设计为应用和核心仓库分离，是为了支持`Composer`单独更新核心框架。

应用项目：核心框架：

首先克隆下载应用项目仓库

```
git clone https://github.com/kwinH/YrPHP blog

```

然后切换到`blog`目录下面，再克隆核心框架仓库：

```
git clone https://github.com/kwinH/YrPHP-Core YrPHP

```

#### 测试

[](#测试)

```
php -S localhost:8000 -t blog

```

在浏览器中输入地址：

```
http://localhost:8000

```

会自动生成以下目录结构

至此，YrPHP已经安装成功。

目录结构
====

[](#目录结构)

www WEB部署目录（或者子目录）

```
├─index.php       入口文件
├─README.md       README文件
├─App     应用目录
├─public          资源文件目录
└─YrPHP           框架目录
│  ├─Common      核心公共函数目录
│  ├─Config      核心配置目录
│  ├─Lang        核心语言包目录
│  ├─Libs        框架类库目录
│  ├─resource    核心资源文件目录

```

入口文件
====

[](#入口文件)

index.php

```
