最近在探討技術的同時 發現老袁的系統邏輯很簡單
為此我靈感就來了 借鑒了老袁的邏輯 為自己開發了一套簡潔性的框架
好處就是代碼可以兼容yzm 但使用方法稍微不同 加載邏輯不一樣 話不多說細講一番
當然基于yzm上的邏輯 版權一定帶上 我代碼示例中都有注明yzm的版權
目錄結構 很簡單
app為應用模塊
cache 緩存
common公共目錄
extend擴展類
qhphp框架類
uploads上傳目錄
基礎三件套 MVc框架 必備套件
配置分別存為其他文件 簡單明了 新增助手函數
yzm加載方式:yzm_base::load_controller('common', 'admin', 0);
我的加載方式 需要引入加載類
use qhphp\base\Base;
然后再Base::load_controller('login','admin');
控制器必須要有命名空間 如:namespace app\admin\controllers;
因為與yzm加載方法不同 我這版可以設置應用映射
什么叫應用映射 就是直接給后臺改名 后臺路徑可以改
把admin改為admin1 即可訪問 原來的方式將為靜止訪問
默認使用了yzm方法類 新增了我自己的緩存類
具體功能有 設置緩存 自增緩存值 自減緩存值 追加數據 刪除緩存 獲取緩存 獲取并刪除緩存 清空緩存
使用方法 直接 use qhphp\cache\Cache; 引入
新增配置類 使用方法直接use qhphp\config\Config;
可以直接讀取配置信息 如讀取config::get('auth_key');
默認讀取app下的配置 讀取其他可以config::get('auth_key','rotue); 讀取路由配置
新增cookie類 使用方法也是直接引入即可use qhphp\cookie\cookie;
功能有設置 獲取 刪除 加密 等
新增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); // 覆蓋現有文件
功能有 可以獲取打開圖片的信息,包括圖像大小、類型等 使用crop
和save
方法完成裁剪圖片功能。
支持從某個坐標開始裁剪
系統支持添加圖片及文字水印
使用:use qhphp\request\Request;
判斷請求方法是否為 GET 判斷請求方法是否為 POST 判斷請求是否為 AJAX 請求 獲取客戶端 IP 地址
獲取 GET 參數 獲取 POST 參數 獲取 GET 或 POST 參數 獲取指定的 GET 或 POST 參數
使用:use qhphp\validator\Validator;
具體方式看:http://www.rainie-yang.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 }
使用composer來自動加載整個框架 與yzm的區別是 yzm以打開傳統方式打開php類來運行
我這完全使用了第三方來加載 利于命名空間的映射來加載類以及框架
優勢在于引入類的時候靈活 避免了文件的重復 不需要手動編寫復雜的自動加載邏輯
能夠減少文件 I/O 和遍歷目錄的操作
以與許多其他工具和框架集成 一鍵安裝 Composer 引入到現有的項目中,而不需要對項目的結構和代碼進行大量修改。
可以簡化項目的依賴管理和自動加載過程,提高性能
可以書寫自己的標簽 方便靈活
也可以自定義書寫標簽規則
自定義拓展靈活
函數包括助手函數和yzm的系統函數
需要可以找我免費獲取 避免盜碼行為 框架基于yzm二開并處理邏輯
版權我已經標注 我寫的功能類 有我自己的版權 使用yzm的代碼也就是系統的控制 框架80%為原創性代碼
登錄后可查看詳情!