Download the PHP package kwin/yrphp without Composer

On this page you can find all versions of the php package kwin/yrphp. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package yrphp

简介

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

安装YrPHP

通过 Composer Create-Project

Git安装

YrPHP拆分为多个仓库,主要包括:

之所以设计为应用和核心仓库分离,是为了支持Composer单独更新核心框架。

应用项目:https://github.com/kwinH/YrPHP 核心框架:https://github.com/kwinH/YrPHP-Core

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

然后切换到blog目录下面,再克隆核心框架仓库:

测试

在浏览器中输入地址:

会自动生成以下目录结构

至此,YrPHP已经安装成功。

目录结构

www WEB部署目录(或者子目录)

入口文件

index.php

注意:APP的定义必须是当前目录下的文件名,不需要标明路径 系统会在第一次调用时 自动生成项目目录结构

应用目录

www WEB部署目录(或者子目录)

系统核心常量

常量 描述
ROOT_PATH 项目根路径绝对路径
BASE_PATH 框架目录绝对路径
APP_PATH 用户项目目录绝对路径
CORE_PATH 框架核心类库目录绝对路径
LIBS_PATH 框架集成常用类库目录绝对路径
APP_MODE 应用模式
DEBUG 是否开启调试模式 (默认false)

核心

路由

基本路由

你可以在 Config/routes.php 文件中定义应用程序的大多数路由,最基本的YrPHP 路由仅接受 URI 和一个闭包

为多重动作注册路由

有时候你可能需要注册一个可响应多个 HTTP 动作的路由。这时可通过 Routematch 方法来实现:

或者,你甚至可以通过 any 方法来使用注册路由并响应所有的 HTTP 动作:

基础路由参数

有时候你可能需要从 URI 中获取一些参数。例如,从 URL 获取用户的 ID。这时可通过自定义路由参数来获取:

你可以依照路由需要,定义任意数量的路由参数:

路由的参数都会被放在「大括号」内。当运行路由时,参数会通过路由闭包来传递。

可选的路由参数

有时候你需要指定路由参数的默认值,可以在参数名称后面加上 ='value' 来实现:

正则表达式限制参数

你可以使用 pattern 参数来限制路由参数格式。pattern 参数为一个数组,以名称为key,以定义参数应该如何被限制的正则表达式为value:

全局限制

如果你希望路由参数可以总是遵循正则表达式,则可以使用 pattern 方法。

模式一旦被定义,便会自动应用到所有后续使用该参数名称的路由上:

命名路由

命名路由让你可以更方便的为特定路由生成 URL 或进行重定向。你可以使用 as 数组键指定名称到路由上:

还可以指定路由名称到控制器动作:

路由群组和命名路由

如果你使用了 [路由群组],那么你可以在路由群组的属性数组中指定一个 as 关键字,这将允许你为路由群组中的所有路由设置相同的前缀名称:

对命名路由生成 URLs

一旦你在指定的路由中分配了名称,则可通过 route 函数来使用路由名称生成 URLs 或重定位:

如果路由定义了参数,那么你可以把参数作为第二个参数传递给 route 方法。指定的参数将自动加入到 URL 中:

路由群组

路由群组允许你共用路由属性,例如:中间件、命名空间,你可以利用路由群组统一为多个路由设置共同属性,而不需在每个路由上都设置一次。共用属性被指定为数组格式,当作 Route::group 方法的第一个参数。

为了了解更多路由群组的相关内容,我们可通过几个常用样例来熟悉这些特性。

中间件

指定中间件到所有群组内的路由中,则可以在群组属性数组里使用 middleware 参数。中间件将会依照列表内指定的顺序运行:

命名空间

另一个常见的例子是,指定相同的 PHP 命名空间给控制器群组。可以使用 namespace 参数来指定群组内所有控制器的命名空间:

请记住,默认你不用指定完整的App\Controllers 命名空间前缀就能注册控制器路由。所以,我们只需要指定在基底 App\Controllers根命名空间之后的部分命名空间。

路由前缀

通过路由群组数组属性中的 prefix,在路由群组内为每个路由指定的 URI 加上前缀。例如,你可能想要在路由群组中将所有的路由 URIs 加上前缀 admin

你也可以使用 prefix 参数去指定路由群组中共用的参数:

RESTful 资源控制器

这一条路由声明会创建多个路由,用来处理各式各样和相片资源相关的的 RESTful 行为。同样地,生成的控制器有着各种和这些行为绑定的方法,包含要处理的 URI 及方法对应的注释。

由资源控制器处理的行为

动词 路径 行为(方法) 路由名称
GET /photos index photos.index
GET /photos/create create photos.create
POST /photos save photos.save
GET /photos/{photo} show photos.show
GET /photos/{photo}/edit edit photos.edit
PUT/PATCH /photos/{photo} update photos.update
DELETE /photos/{photo} delete photos.delete

部分资源路由

声明资源路由时,你可以指定让此路由仅处理一部分的行为:

命名资源路由

所有的资源控制器行为默认都有路由名称;不过你可以在选项中传递一个 names 数组来重写这些名称:

嵌套资源

有时你可能会需要定义「嵌套」资源路由。例如,相片资源可能会附带多个「评论」。要「嵌套」此资源控制器,可在路由声明中使用「点」记号:

此路由会注册一个「嵌套」资源,可通过类似的 URL 来访问它:photos/{photos}/comments/{comments}

附加资源控制器

如果想在资源控制器中默认的资源路由之外加入其它额外路由,则应该在调用 Route::resource 之前 定义这些路由。否则,由 resource 方法定义的路由可能会不小心覆盖你附加的路由:

隐式控制器

YrPHP让你能够轻易地通过定义单个路由来处理控制器类中的各种行为。首先,使用 Route::controller 方法来定义路由。controller 方法接受两个参数。第一个参数是控制器所处理的基本 URI,第二个是控制器的类名称:

接下来,只要在控制器中加入方法。方法的名称应由它们所响应的 HTTP 动词作为开头,紧跟着首字母大写的 URI 所组成:

正如你在上述例子中所看到的,index 方法会响应控制器所处理的根 URI,在这个例子中是 users

YrPHP的Route会从上至下解析,直到找到方法就不会继续解析其他方法,所以要注意方法的顺序。

分派路由名称

如果你想要 命名 控制器中的某些路由,你可以在 controller 方法中传入一个名称数组作为第三个参数:

路由缓存

若你的应用程序完全通过控制器使用路由,你可以利用 YrPHP的路由缓存。使用路由缓存可以大幅降低注册全部路由所需的时间。在某些情况下,你的路由注册甚至可以快上一百倍!要生成路由缓存,只要运行 route cache 此 Artisan 命令:

这就可以了!现在你的缓存路由文件将被用来代替 Config/routes.php 这一文件。请记得,若你添加了任何新的路由,就必须生成新的路由缓存。因此你可能希望只在你的项目部署时才运行 route cache 这一命令。

要移除缓存路由文件而不生成新的缓存,请使用 route clear 命令:

URI

获得URL

getUrl($url,$indexPage);//如果参数为空 则返回现在所在所在的根目录如http://example.com/index.php/news/index/id 则返回 http://example.com/ 否则返回拼接后的URL /** * @param string $url URL表达式,格式:'[模块/控制器/操作#锚点@域名]?参数1=值1&参数2=值2...' * @param bool|true $indexPage 如果是REWRITE重写模式 可以不必理会 否则默认显示index.php * @return string */

默认情况下,index.php 文件将被包含在你的 URL 中: example.com/index.php/news/article/my_article

你可以很容易的通过 .htaccess 文件来设置一些简单的规则删除它。下面是一个例子,使用“negative”方法将非指定内容进行重定向:

在上面的例子中,可以实现任何非 index.php、images 和 robots.txt 的 HTTP 请求都被指向 index.php。

添加 URL 后缀

通过设置 config/config.php 文件,你可以为 yrphp 生成的 URL 添加一个指定的文件后缀。举例来说,如果 URL 是这样的:

example.com/index.php/products/view/shoes

你可以随意添加一个后缀,例如 .html,使其显示为:

example.com/index.php/products/view/shoes.html

你只需修改config/config.php 文件中

cli命令行模式

实现代码提示、跟踪和自动补全

参数必须是3个及以上,artisan是入口文件,ide-help是config/commands.php中类的key值(也可以说是类别名),也可以是控制器名(多目录用/分开)。generate是方法名,其他参数都做为调用的方法的参数

中间件

HTTP 中间件提供了一个方便的机制来过滤进入应用程序的 HTTP 请求,在一个请求真正处理前,我们可能会对请求做各种各样的判断,然后才可以让它继续传递到更深层次中。

创建一个中间件

中间件一般放在App/Middleware目录下,如下就要一个名为App/Middleware/Auth.php的中间件,该中间件实现了如果用户还没登录,则跳转到登录页面,否则调用$next($request)继续执行(相当于允许通过中间件)

调用

1、你可以在App/Config/config.php文件中配置

2、也可以在控制器中单独调用

middleware(\$middleware, array \$options = []) \$middleware参数为中间件名,\$options 为过滤条件,['except'=>['login']]代表调用login方法不调用该中间件,其他都要调用该中间件,['only'=>['content']]代表仅调用content方法时调用该中间件,其他都不要调用该中间件。

控制器

例子:创造一个控制器 在APP目录下的controls目录下创建一个名为: Test.class.php的文件

接着我们用浏览器打开 example.com/index.php/test 就可以看到 Hello World

命名空间

表示引入 YrPHP\Controller 命名空间便于直接使用。所以,

等同于使用:

规则

  1. 文件名必须是:类名.class.php
  2. 类名首字母必须大写
  3. 必须继承Controller类,可以重写Controller类(这在扩展中再说)

依赖注入

当调用控制器时会自动填充参数,如上$request为Request类,$id为URL多于字段的第一个,$name为多于字段第二个,以此类推 如访问example.com//test/index/1/kwin?s=2&page=3 $data=['s'=>2,'page'=>3],$id=1,$name='kwin'

配置

默认的配置文件在BASE_PATH/config/config.php 如需修改相关配置

如果设置了APP_MODE 则在APP_PATH/config_APP_MODE.php中修改相关配置 否则 在APP_PATH/config_APP.php中修改相关配置

yrPHP框架中所有配置文件的定义格式均采用返回PHP数组的方式,格式为:

读取配置

无论何种配置文件,定义了配置文件之后,都统一使用系统提供的C方法(可以借助Config单词来帮助记忆)来读取已有的配置。

获取已经设置的参数值:C('参数名称')

除config.php文件外,其他文件可以用C('fileName.param')获取

如果charset尚未存在设置,则返回NULL。

支持设置默认值例如:

如果不传参数 则返回所有配置信息

动态配置

设置新的值 如果存在则覆盖,否则新建:

批量设置:

加载配置文件

视图

配置

加载视图

display($fileName, $tplVars = '', $cacheId = '');

$fileName 提供模板文件的文件名 $tpl_var 动态数据 $cacheId 当$cacheId为false时,不会生成缓存文件,其他情况做为缓存ID,当有个文件有多个缓存时,$cacheId不能为空,否则会重复覆盖

上面的 name 便是你的视图文件的名字 如 index.html。

给视图添加动态数据

视图缓存

以下参数可用于视图缓存

模版

模版继承

控制器中调用

定义页面布局layout.php

继承页面布局 index.php

由于layout中没有test内容区块 所以section test中的内容不会显示

test.php

最后解析成:

变量输出

在模板中输出变量的方法很简单,例如,在控制器中我们给模板变量赋值:

模板编译后的结果就是:

输出函数返回值

注意模板标签的{=之间不能有任何的空格,否则标签无效。

运算符

包含文件

赋值

注意模板标签的assign$之间必须有空格,否则标签无效。

将函数赋值

判断

循环

foreach

for

while

使用php代码

自定义标签

在配置文件tabLib.php文件中自定义标签

使用

在模版中调用

表单

实例:

开启表单

默认表单使用 POST 方法,当然您也可以指定传参其他表单的方法

当填写第二个参数$data(模型)时,当您产生表单元素时,如 text 字段,模型的值将会自动比对到字段名称,并设定此字段值,举例来说,用户模型的 email 属性,将会设定到名称为 email 的 text 字段的字段值,不仅如此,当 Session 中有与字段名称相符的名称, Session 的值将会优先于模型的值,而优先顺序如下:

  1. Session 的数据 (旧的输入值)
  2. 明确传递的数据
  3. 模型属性数据

这样可以允许您快速地建立表单,不仅是绑定模型数据,也可以在服务器端数据验证错误时,轻松的回填用户输入的旧数据!

CSRF 保护

YrPHP提供了一个简易的方法,让您可以保护您的应用程序不受到 CSRF (跨网站请求伪造) 攻击。首先YrPHP会自动在用户的 session中放置随机的token,别担心这些会自动完成。如果你调用了=form::open方法,这个 CSRF 参数会用隐藏字段的方式自动加到您的表单中。另外,您也可以使用 token 方法去产生这个隐藏的 CSRF 字段的 HTML 标签:

标签(Label)

注意: 在建立标签时,任何您建立的表单元素名称与标签相符时,将会自动在 ID 属性建立与标签名称相同的 ID。

文字字段

默认ID为字段名,如上如果没有在第二个参数中指定ID,则ID为name

多行文本域

size 50为cols,10为rows,cols和rows默认就是50*10

密码字段

隐藏域

复选框、单选按钮

第四个参数为是否默认选中

下拉框

按钮

模型

数据库配置

数据库配置模版文件在BASE_PATH/config/database.php 如需修改相关配置

如果设置了APP_MODE 则在APP_PATH/database__APP_MODE.php中修改相关配置 否则 在APP_PATH/database.php中修改相关配置

模型定义

模型类并非必须定义,只有当存在独立的业务逻辑或者属性的时候才需要定义。 文件名为模型名.class.php UserModel的文件名为UserModel.class.php

模型类通常需要继承系统的YrPHP\Model类或其子类,下面是一个Model\UserModel类的定义:

模型实例化

M(['模型名']);

模型名是为选填 如果为空则实例化父类。

实例化请确保参数确定 区分大小写 如果模型UserModel不存在,则实例化父类 表为user_model

CURL

Active Record 模式

添加数据INSERT

$this->insert([添加的数据]);

添加的数据如果为空,则获取$_POST数据,默认开启验证,如果字段数据库不存在 则过滤 如果有临时关闭则 $this->setOptions(array('_validate'=>false));

inserts支付批量添加


删除数据DELETE

$this->delete(条件);

在自定义模型在调用

条件为array|string 推荐array


在控制器在调用

修改数据

条件为array|string 推荐array

查询数据

FIND

**find($id = 0, $assoc = false) string|int $id 查询的条件主键值 bool|false $assoc 当该参数为 TRUE 时,将返回 array 而非 object 以主键为条件 查询


ALL

**all($assoc = false, $tableName = "", $auto = true) bool|false $assoc 当该参数为 TRUE 时,将返回 array 而非 object 以主键为条件 查询


GET

get(\$tableName = "", $auto = true)

生产最后的SQL一句

string $tableName 表名 $auto 是否自动添加表前缀


SELECT|FIELD

select($field =[],[...])

$field string|array 字段 ,多个参数


EXCEPT

except($field = []) 查询tableName表(默认$this->tableName)除了$field外所有字段 $field array 字段


LIMIT

limit($offset, $length = null) $offset 起始位置 $length 查询数量


WHERE

where($where = '', $logical = "and")

@param $logical 与前一个条件的连接符 @param $where string|array string "id>'100'" -> where id>'100'**

array($field=>$value)

例: ['id'=>1,'or id'=>2,'age >'=>15,'or id in'=>[1,2,3,4,5]]

$value 值 array|string|int|null|‘not null’ field可以用空格分开,与连接符、字段名、运算符组成 运算符 =|!=|<>|>|<|like|is|between|not between|in|not in 连接符 or|and 与前一个条件的连接符 默认调用$logical

where 可以用连贯查询 一组where会用()包含

ORDER

GROUP

HAVING

同WHERE

JOIN

join($table, $cond, $type = '', $auto = true) @param $table 表名 @param $cond 连接条件 同where @param string $type 连接方式 @param bool $auto 是否自动添加表前缀

计算

统计COUNT

count($tableName,$auto = true) $tableName 表名 $auto 是否自动添加前缀 bool 默认true

最大值MAX

max($tableName,$field,$auto = true) $tableName 表名 $field 字段名 不能为空 $auto 是否自动添加前缀 bool 默认true

最小值MIN

min($tableName,$field,$auto = true) $tableName 表名 $field 字段名 不能为空 $auto 是否自动添加前缀 bool 默认true

累计值SUM

sum($tableName,$field,$auto = true) $tableName 表名 $field 字段名 不能为空 $auto 是否自动添加前缀 bool 默认true

平均值SUM

sum($tableName,$field,$auto = true) $tableName 表名 $field 字段名 不能为空 $auto 是否自动添加前缀 bool 默认true

查询结果返回

row($assoc = false) 查询一条结果

@param bool|false $assoc 当该参数为 TRUE 时,将返回 array 而非 object 当查询价格为空时 返回false


result($assoc = false) 查询一条结果

@param bool|false $assoc 当该参数为 TRUE 时,将返回 array 而非 object 当查询价格为空时 返回一个空的数组array()

rowCount() — 返回受上一个 SQL 语句影响的行数

query 操作SQL

事务

要使用事务来运行你的查询, 你可以使用如下方法:

  1. startTrans(); 开启事务
  2. transComplete(); 自动判断错误 提交或则回滚
  3. commit(); 事务提交
  4. rollback(); 事务回滚

属性

public $transStatus;bool 事务是否发生错误

或则

错误调试

数据缓存

数据库缓存

在配置文件中配置数据库相关配置

lastQuery() 查询上一条SQL语句

使用多数据库连接

当你使用了多个连接时,则可以通过 connection 方法来访问每个连接。传递给 connection 方法的 name 必须对应至 config/database.php 配置文件中的连接列表的其中一个:

数据预处理——访问器和修改器

定义一个访问器

若要定义一个访问器,则必须在你的模型上创建一个 getFooAttribute 方法。要访问的 Foo 字段需使用「驼峰式」来命名。在这个例子中,我们将为 first_name 属性定义一个访问器。当 Eloquent 尝试获取 first_name 的值时,将会自动调用此访问器:

如你所见的,字段原始的值被传递到访问器中,让你可以操作并返回结果。如果要访问被修改的值,则可以像这样来访问 first_name 属性:

定义一个修改器

若要定义一个修改器,则必须在模型上定义一个 setFooAttribute 方法。要访问的 Foo 字段需使用「驼峰式」来命名。让我们再来定义 first_name 属性的修改器。当我们尝试在模型上设置 first_name 的值时,将会自动调用此修改器:

修改器会获取属性已经被设置的值,让你可以操作该值并将其设置到 Eloquent 模型内部的 $attributes 属性上。举个例子,如果我们尝试将 first_name 属性设置成 Sally

在这个例子中,setFirstNameAttribute 函数将会使用 Sally 作为参数来调用。修改器会对该名字使用strtolower 函数并将其值返回。


表单验证

系统函数


创造自己的类库

将你自己的 .php 文件放入APP_PATH/Libs 文件的命名规则为类名.php,类名不能与系统类库(LIBS_PATH)下的类重名

例:

APP_PATH/Libs文件夹中新建一个名问MyPage.class.php的类文件

在控制器中调用

loadClass($className)以单例模式实例化类

请确保类名正确 区分大小写

系统类库(YrPHP/Libs)

所有系統类都注冊了别名,可以直接在控制器中用别名::方法名()来调用 如: crypt::encrypt($str)

当然自定义的类,在Config/class_alias.php中注册了别名,也可以这样调用

加密类 Crypt

配置密钥

APP_PATH.config/config.php下配置

加密解密

数组类

文件处理类 File

文件上传类 Uoload

支持多文件上传

上传配置设置

key 值选项 说明
maxSize int 最大的上传文件 KB 默认为0 不限制   注意:通常PHP也有这项限制,可以在php.ini文件中指定。通常默认为2MB。
savePath / 上传目录 默认/根目录
fileName None 自定义上传文件后的名称,不含文件后缀
allowedTypes array() 允许上传文件的后缀列表默认空数组为允许所有
isRandName BOOL 设置是否随机重命名文件, false不随机 默认 true
overwrite BOOL 是否覆盖。true则覆盖,false则重命名  默认false

init($config)参数初始化

uploadFile($field)文件上传

@param 表单名称 $field,上传文件的表单名称 如果为空则上传 $_FILES数组中所有文件

getFileInfo($inputName=null);获得上传文件相关属性

inputName 表单名 如果为多文件上传 则在表单名后面跟下标 如果inputName==null 则返回一个以表单名为键的多维数组 return array(inputName1=>array(),inputName2=>array(),...)

如果inputName表单名不为空 则返回该表单上传的文件信息 如果表单名错误 则 返回false

如果上传文件有错误 则return array('errorCode'=>错误代码)

否则 return 包括以下单元的数组 array :fileName(最终文件名包含后缀)、fileType(文件mime类型)、filePath(包含文件名的完整路径)、origName(上传前的文件名)、fileExt(文件后缀)、 fileSize(文件大小KB)、isImage(是否是图片bool)、imgWidth(图片宽度)、imgHeight(图片高度)

getError($errorCode = null)

$errorCode 根据错误代码获得上传出错信息

图像处理类 Image

支持连贯操作

缩略图

水印

剪辑

CURL类 Curl

支持连贯操作

验证码类 VerifyCode

分页类

生成样式

首页上一页234567下一页尾页

验证类 Validate

购物车类 Cart

Email 类 PHPMailer

`


All versions of yrphp with dependencies

PHP Build Version
Package Version
Requires php Version >=7.0.0
kwin/yrphp-core Version ~5.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package kwin/yrphp contains the following files

Loading the files please wait ....