YzmCMS x 基于新开框架纯文章系统

1049次浏览 更新日期:2023-12-28 19:15:12 分类:模板插件 评论:9

前言

image.png

最近在探讨技术的同时 发现老袁的系统逻辑很简单


为此我灵感就来了 借鉴了老袁的逻辑 为自己开发了一套简洁性的框架


好处就是代码可以兼容yzm 但使用方法稍微不同 加载逻辑不一样 话不多说细讲一番


当然基于yzm上的逻辑 版权一定带上 我代码示例中都有注明yzm的版权


演示

演示

功能

目录结构

image.png

目录结构 很简单 

app为应用模块 

cache 缓存  

common公共目录 

extend扩展类

qhphp框架类

uploads上传目录


app应用

image.png

基础三件套 MVc框架 必备套件


配置

image.png

配置分别存为其他文件 简单明了 新增助手函数


加载

yzm加载方式:yzm_base::load_controller('common', 'admin', 0); 


我的加载方式 需要引入加载类 


use qhphp\base\Base;


然后再Base::load_controller('login','admin');


控制器必须要有命名空间 如:namespace app\admin\controllers;


应用映射

因为与yzm加载方法不同 我这版可以设置应用映射


什么叫应用映射 就是直接给后台改名 后台路径可以改 


image.png


把admin改为admin1 即可访问 原来的方式将为静止访问


缓存

默认使用了yzm方法类 新增了我自己的缓存类


具体功能有 设置缓存 自增缓存值 自减缓存值  追加数据 删除缓存 获取缓存 获取并删除缓存 清空缓存


使用方法 直接 use qhphp\cache\Cache; 引入 


配置

新增配置类  使用方法直接use qhphp\config\Config; 


可以直接读取配置信息 如读取config::get('auth_key');


默认读取app下的配置 读取其他可以config::get('auth_key','rotue); 读取路由配置


cookie

新增cookie类 使用方法也是直接引入即可use qhphp\cookie\cookie


功能有设置 获取 删除 加密 等


Session

新增Session类 使用方法直接引入 use qhphp\Session\Session


基本增删


数据库操作类

yzm直接使用方法直接使用D方法 


我这使用db方法 当然如果你不用函数 你可以直接引入 use qhphp\db\db


创建类 直接使用


增:

Db('user')->insert($data);

删:

Db('user')->where('id',1)->delete();

改:

如果数据中包含主键,可以直接使用:

Db('user')->update(['name' => 'thinkphp','id'=>1]);

查:

Db('user')->where('id',1)->find();

查询数据集使用:

Db('user')->where('status',1)->select();
// 返回某个字段的值
Db('user')->where('id',1)->value('name');
// 查询第一页数据
Db('article')->page('1,10')->select();

使用page方法你不需要计算每个分页数据的起始位置,page方法内部会自动计算。



alias用于设置当前数据表的别名,便于使用其他的连贯操作例如join方法等。

示例:

Db:('user')->alias('a')->join('__DEPT__ b ','b.user_id= a.id')->select();
// 助手函数
db('user')->count();

获取用户的最大积分:

db('user')->max('score');

获取用户的平均积分:

db('user')->avg('score');
// 获取今天的博客
Db('blog') ->whereTime('create_time', 'today')->select();
// 获取昨天的博客
Db('blog')->whereTime('create_time', 'yesterday')->select();
// 获取本周的博客
Db('blog')->whereTime('create_time', 'week')->select();   
// 获取上周的博客
Db('blog')->whereTime('create_time', 'last week')->select();    
// 获取本月的博客
Db('blog')->whereTime('create_time', 'month')->select();   
// 获取上月的博客
Db('blog')->whereTime('create_time', 'last month')->select();      
// 获取今年的博客
Db('blog')->whereTime('create_time', 'year')->select();   
 // 获取去年的博客
 Db('blog')->whereTime('create_time', 'last year')->select();
// 自增 score 字段
db('user')->where('id', 1)->setInc('score');
// 自减 score 字段
db('user')->where('id', 1)->setDec('score');
// 查询状态为1的用户数据 并且每页显示10条数据
$list = Db('user')->where('status',1)->paginate(10);

$page = db('user')->render($list)

使用render方法 可直接分页 使用$page可直接输出上一页下一页


这是我自己写的类 文件小 方便调用接口 如何你需要单独使用分页 你可以直接use方式引入即可


错误类

新增报错类 如果遇到错误 会自动写入错误日志 老袁写的写的也不错 我暂时使用他的了


如果需要使用直接use qhphp\log\ErrorLog;


上传类

使用:use qhphp\upload\Uploads;


功能:上传文件大小格式限制 生成文件哈希散列值等等 大小十几k


图片处理类

使用

// $image = new Image('path/to/image.jpg');
// $image->crop(100, 100, 200, 200);
// $image->flip('horizontal');
// $image->watermark('path/to/watermark.png', 50, 50);
// $image->text('Hello World', 100, 100, [255, 255, 255], 12, 'path/to/font.ttf');
// $image->save('path/to/new/image.jpg', true); // 覆盖现有文件

功能有 可以获取打开图片的信息,包括图像大小、类型等 使用cropsave方法完成裁剪图片功能。


支持从某个坐标开始裁剪 

生成缩略图

添加水印

系统支持添加图片及文字水印

请求类

使用:use qhphp\request\Request;


判断请求方法是否为 GET  判断请求方法是否为 POST  判断请求是否为 AJAX 请求  获取客户端 IP 地址 


获取 GET 参数 获取 POST 参数 获取 GET 或 POST 参数 获取指定的 GET 或 POST 参数


验证类

使用:use qhphp\validator\Validator;


具体方式看:https://www.yzmask.com/show/1982.html


模版解析类

使用运算符例如:


      {$user.score+10} 
//正确的{$user['score']+10} 
//正确的{$user['score']*$user['level']} 
//正确的{$user['score']|myFun*10} 
//错误的{$user['score']+myFun($user['level'])}
 //正确的


模板可以支持三元运算符,例如:


{$status? '正常' : '错误'}
{$info['status']? $info['msg'] : $info['error']}
{$info.status? $info.msg : $info.error }


app类

使用composer来自动加载整个框架 与yzm的区别是 yzm以打开传统方式打开php类来运行


我这完全使用了第三方来加载 利于命名空间的映射来加载类以及框架 


优势在于引入类的时候灵活 避免了文件的重复 不需要手动编写复杂的自动加载逻辑


能够减少文件 I/O 和遍历目录的操作


以与许多其他工具和框架集成 一键安装 Composer 引入到现有的项目中,而不需要对项目的结构和代码进行大量修改。


可以简化项目的依赖管理和自动加载过程,提高性能


扩展标签

可以书写自己的标签 方便灵活 


image.png

也可以自定义书写标签规则


image.png

自定义拓展灵活


函数包括助手函数和yzm的系统函数


image.png


总结

需要可以找我免费获取 避免盗码行为 框架基于yzm二开并处理逻辑


版权我已经标注 我写的功能类 有我自己的版权 使用yzm的代码也就是系统的控制 框架80%为原创性代码

附件下载:


登录后可查看详情!

我来说两句
  • 老师漏洞修复没有
    1
    回复
  • yzmcms
    yzmcms 官网认证 11月前
    厉害了
    1
    回复
  • oolaile
    oolaile 11月前
    握艹,牛逼克拉斯
    1
    回复
  • wo521
    wo521 6月前
    必须支持
    0
    回复
  • @xml 不行
    0
    回复
  • xml
    xml 10月前
    Your Composer dependencies require a PHP version ">= 7.4.0".
    
    要求这么高了,7.2都不行?
    0
    回复
  • sxsmlj
    sxsmlj 10月前
    佩服!佩服!佩服!佩服!
    0
    回复
  • 这真是我想要的
    0
    回复
  • wukeke
    wukeke 11月前
    牛人总是研究深奥的东东,佩服佩服!  
    0
    回复
作者信息
发布见解
发内容 回顶部