AYPHP轻量级框架

开发初衷

此框架陪伴了博主三年多,因为经常开发小系统,其他框架有些东西真好用(TP的连贯操作、C函数等),想把这些抠出来太难了。故此写了很多第三方类,后来觉得文件太多了,每次开发都要重新复制并命名(命名空间)很麻烦,故此开发了这样一个轻量级框架,用此框架无需担心用户注入等危险操作,框架在路由层已全面去除可能存在的危险字符(sql、xss、特殊字符)

框架lib下类文件均可以独立使用,如果您并不希望使用此框架,可以单独取出所需要的类文件使用

此文章将长期更新

ps: 此框架支持PHP8,数据库采用PDO

源码地址

规范

目录和文件

  • 目录使用小写+下划线;
  • 类库、函数文件统一以.php为后缀;
  • 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;
  • 类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名;
  • 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);

函数和类、属性命名

  • 类的命名采用驼峰法(首字母大写),例如UserUserType,默认不需要添加后缀,例如UserController应该直接命名为User
  • 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如get_client_ip
  • 方法的命名使用驼峰法(首字母小写),例如getUserName
  • 属性的命名使用驼峰法(首字母小写),例如tableNameinstance
  • 以双下划线“__”打头的函数或方法作为魔术方法,例如__call__autoload

目录结构

 
project 应用部署目录
├─app 应用目录
│ ├─index 模块目录(可更改)
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ ├─function.php 应用(公共)自定义函数
├─ay 框架系统目录
│ ├─unity.php 核心函数
│ ├─drive 框架驱动文件
│ ├─lib 框架类文件
│ ├─Base.php 基础定义文件
│ ├─Core.php 控制台入口文件
│ └─ay.php 框架引导文件
├─config 框架配置目录
│ │ └─app.php 基础配置文件
│ │ └─file.php 上传配置
│ │ └─database.php 数据库配置文件
│ │ └─image.php 图片配置文件
│ │ └─redis.php redis配置文件
│ │ └─route.php 路由配置文件
├─extend 扩展类库目录
├─public 公共资源目录
│ ├─static 静态资源存放目录(css,js,image)
│ ├─index.php 应用入口文件
│ ├─.htaccess 用于 apache 的重写
├─temp 应用的运行时目录(可写,可设置)
├─vendor 第三方类库目录(Composer)
├─README.md README 文件

   

核心类

Request请求类

引入Request类

 
use ay\lib\Request;
// 获取全部参数
dump(Request::instance()->param());
// 获取get参数参数
dump(Request::instance()->get());
// 获取post请求参数 status字段并格式化成int类型
dump(Request::instance()->post("status", "int"));
// 获取put请求正文
dump(Request::instance()->put());
// 获取delete请求参数
dump(Request::instance()->delete());

   

Session

引入Session类

 
use ay\lib\Request;
// 设置
dump(Session::set("user", "123"));
// 获取
dump(Session::get("user"));
// 判断是否存在
dump(Session::has("user"));
// 取出并删除
dump(Session::pull("user"));
// 删除
Session::delete("user");

   

Json返回类

引入json类

 
use ay\lib\Json;
$data = [
"list" => [
["id" => 1],
["id" => 2],
["id" => 3],
]
];
// 与最外层同级
$arr = ["page" => 1];
Json::msg(200, "success", $data, $arr);

   

返回

 
{
"code": 200,
"msg": "success",
"data": {
"list": [
{
"id": 1
},
{
"id": 2
},
{
"id": 3
}
]
},
"page": 1
}

   

Xml操作

引入Xml类

 
use ay\lib\Xml;
// 生成xml
dump(Xml::instance()->create(["a" => 1, "d" => 2]));
// 转数组
dump(xml::instance()->toArray(xml字符串));

   

引入dir类

 
use ay\lib\Dir;
// 创建文件夹
dump(Dir::instance()->create(PUB . "/s"));
// 获取文件扩展名
dump(Dir::instance()->getExt(PUB . "static/water/water.png"));
// 显示目录树
dump(Dir::instance()->treeDir(AY));
// 遍历目录内容
dump(Dir::instance()->tree(AY));
// 删除文件夹
dump(Dir::instance()->del(PUB . "/s"));
// 获取目录大小
dump(Dir::instance()->getDirSize(PUB . "static/water"));
// 复制目录
dump(Dir::instance()->copy(PUB . "static/water", PUB . "static/water1"));

   

图像处理

引入image类

 
use ay\lib\Image;
// 初始化image类 详细初始化信息 看构造函数
$image = new Image();
// 生成缩略图并返回缩略图地址
echo $image->thumb(PUB . "static/water/h.png", PUB . "static/water/h1.png", 100, 100, 1);
// 添加水印
var_dump($image->water(PUB . "static/water/h.png", PUB . "static/water/h2.png", [100, 100], "", 1, "123"));

   

缓存类

引入Cache类

 
use ay\lib\Cache;
// 设置指定缓存
dump(Cache::instance()->set('data', '123'));
// 取出指定缓存
dump(Cache::instance()->get('data'));
// 删除指定缓存
Cache::instance()->del('data');
// 删除全部缓存
Cache::instance()->delAll();
dump(Cache::instance()->get('data'));

   

Curl类

引入Curl类

 
use ay\lib\Curl;
$url = "https://blog.aaayun.cc/test.php";
$ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36';
dump(
Curl::url($url)
->userAgent($ua) // 设置ua
->referer('') // 设置来源
->param(['user' => '测试数据']) // 设置参数
->time(10) // 最大超时时间
->proxy('127.0.0.1', 1080) // 设置代理
->show(true) // 显示repose信息
->cert('') // 设置证书
->post()
);

   

Upload类

引入Upload类

 
use ay\lib\Upload;
$upload = new Upload(PUB . 'upload/', ['txt']);
dump($upload->operate('file'));

   

Env类

引入Env类

 
use ay\lib\Env;
dump(Env::get('data.debug'));

   

Api类

详细使用请看Api控制器

助手函数

R方法

 
// 获取所有post参数
dump(R('post.'));
// 验证post下ids参数是否存在
dump(R('?post.ids'));
// 获取所有get参数
dump(R('get.'));
// 验证get下id参数是否存在
dump(R('?get.id'));
// 获取所有参数 注意 会多返回一个s参数 此参数为当前路由
dump(R('param'));
// 获取所有文件参数
dump(R('file'));
// 验证file下file参数是否存在
dump(R('?file.file'));

   

C方法

 
// 输出全部预定义
dump(C());
// 改变指定并返回值
dump(C('APP.DEBUG', 123));
// 增加并返回值
dump(C('AAA.ACV', 123));
dump(C());

   

success&&fail方法

 
success('操作成功', 'http://baidu.com');
fail('操作失败', 'http://baidu.com');

   

无限级分类树

 
$arr = [
['id' => 1, 'pid' => 0, 'name' => '一级'],
['id' => 2, 'pid' => 1, 'name' => '二级'],
['id' => 3, 'pid' => 2, 'name' => '三级'],
];
dump(tree($arr, 'id', 'pid'));

   

其它常用方法

 
// 导入extends目录下扩展包
extends('pay/alipay.php');
$pay = new AliPay();
// 获取来源ip
dump(getIp());
// 判断当前是否是ssl
dump(is_ssl());
// 抛出异常
halt();
// 跳转
go('http://baidu.com/', 3, "系统正在重定向");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
项目地址 http://code.google.com/p/anyphpmvc/ AnyphpMvc介绍 轻便、简易、通俗、易懂、免费、轻松的PHP框架,只需要鼠标点点就可完成数据的增、删、改、减,内置的用户组管理、权限管理实现简单实用的RBAC。 无须模板减少学习成本、提高运行效率、方便调试,不用另建模板文件不用一句SQL语句,轻松自由的完成数据各种操作。 部署灵活,AnyphpMvc随处可用,拿来即用,常规+非常规。 只需要建立数据表把所有剩下的工作都交给AnyphpMvc吧,AnyphpMvc可根据表实现控制器的添加;无须新建模型文件即可实现数据的常规操作;控制不同用户组的访问权限;自动生成列表、新增、修改等表单。AnyphpMvc能够智能的完成这一切。 AnyphpMvc与常规PHP MVC框架的对比 AnyphpMvc面向群体 AnyphpMvc合适我用吗 怎样直接执行SQL语句 $Admin = new AdminControl(); $mydb = new DataBaseObject(); $mydb->db->execute("Sql"); $mydb->db->insert('table_name',array('field_name'=>Get::getByKey('field_value'))) $mydb->db->delete('table_name',array('field_name'=>Get::getByKey('field_value'))) //table_name 是查询的表名 后面的查询是条件 AnyphpMvc支持什么数据库 怎样根据SQL查询数据 查询单条数据 $model = $mydb->db->selectSingle('table_name',array('field_name'=>Get::getByKey('field_value'))); 调用 $model['field_name'] 查询多条数据 $model = $mydb->db->select('table_name',array('field_name'=>Get::getByKey('field_value'))); //table_name 是查询的表名 后面的查询是条件 2010-09-24 AnyphpMvc初次上传,完成基本功能,完成AnyphpMvc部署和框架搭建。 2010-09-25 一些小修改, 修正数据库配置文件 修正编辑权限时候出现的一些BUG 修正错误提示显示方式 添加文章管理模块 2010-09-28 增加了首页的调用 修复一些小BUG 添加jquery.uploadify上传插件 新增后台添加单页管理模块 未完成的网站首页 2010-10-02 不再规定表的主键必须为“ID” 新增开发助手: 1 实现权限节点的自动添加 2 实现控制器的代码生成 2010-10-03 新增代码高亮插件。 1 修复权限控制,判断登录的几个BUG 2 强化开发助手,可以自动生成控制器,自动智能生成权限节点。 2010-10-05 增强开发助手,实现以下功能 1 可以在线创建数据库,同时默认主键为ID 2 可在线修改字段类型等,同时建立字段字典,指定字段的数据类型和表单类型 3 可根据数据表智能自动生成列表、编辑、新增表单,并根据不同字段表单类型对应不同表单。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值