ThinkLibrary
ThinkLibrary copied to clipboard
Library for ThinkAdmin
è¿æ Github ç½ç»è®¿é®ä¸ç¨³å®ï¼é¡¹ç®ä¸»åºå·²è¿ç§»å° Gitee ä»åº
注æï¼Github ä»åºä¸ä¼ç»å¸¸æ´æ°ï¼è·åææ°æºç è¯·è®¿é® Gitee ä»åº
Gitee ä»åºå°åï¼https://gitee.com/zoujingli/ThinkLibrary
ThinkLibrary 6.0 for ThinkPHP 6.0
ThinkLibrary 6.0 æ¯é对 ThinkPHP 6.0 çæ¬å°è£ çä¸å¥å·¥å ·ç±»åºï¼æ¹ä¾¿å¿«éæ建 Web åºç¨ã
å å«ç»ä»¶
- æ°æ®å表å±ç¤ºï¼å¯å¸¦é«çº§æç´¢å¨ï¼
- FORM表åå¤çå¨ï¼è¡¨åå±ç¤ºåæ°æ®å ¥åºï¼
- æ°æ®ç¶æå¿«éå¤çï¼æ°æ®æå®å段æ´æ°ï¼æ¯æå¤å段åæ¶ï¼
- æ°æ®å®å ¨å é¤å¤çï¼ç¡¬å é¤ + 软å é¤ï¼is_deleted æ deleted å段åå¨åèªå¨è½¯å é¤ï¼
- æ件åå¨éç¨ç»ä»¶ï¼æ¬å°æå¡åå¨ + åæäºåå¨ + ä¸çäºåå¨ + é¿éäºOSSåå¨ + è ¾è®¯äºCOSåå¨ï¼
- éç¨æ°æ®ä¿åæ´æ°ï¼éè¿ key å¼å where å¤å®æ¯å¦åå¨ï¼åå¨åæ´æ°ï¼ä¸åå¨åæ°å¢ï¼
- éç¨ç½ç»è¯·æ± ï¼æ¯æ get å postï¼å¯é 置请æ±è¯ä¹¦çï¼
- ç³»ç»åæ°éç¨ g-k-v é ç½®ï¼å¿«éåæ°é¿ä¹ åé ç½®ï¼
- UTF8å å¯ç®æ³æ¯æï¼å®å ¨URLåæ°ä¼ åæ°ï¼
- æ¥å£ CORS è·¨åé»è®¤æ¯æï¼è¾åº JSON æ ååï¼
- æ¯æ表åCSRFå®å ¨éªè¯ï¼èªå¨å FORM æ ç¾æ¿æ¢ï¼
- æ´æ°åè½çå¾ æ¨æ¥åç°å¦....
åè项ç®
ThinkAdmin - V6.0
- Gitee ä»åº https://gitee.com/zoujingli/ThinkAdmin/tree/v6
- Github ä»åº https://github.com/zoujingli/ThinkAdmin/tree/v6
- ä½éªå°åï¼è´¦å·å¯ç é½æ¯adminï¼https://v6.thinkadmin.top
代ç ä»åº
ThinkLibrary 为 MIT åè®®å¼æºé¡¹ç®ï¼å®è£ 使ç¨æäºæ¬¡å¼åä¸å约æï¼æ¬¢è¿ fork 项ç®ã
é¨å代ç æ¥èªäºèç½ï¼è¥æå¼è®®å¯ä»¥èç³»ä½è è¿è¡å é¤ã
- å¨çº¿ä½éªå°åï¼https://v6.thinkadmin.top ï¼è´¦å·åå¯ç é½æ¯ admin ï¼
- Gitee ä»åºå°åï¼https://gitee.com/zoujingli/ThinkLibrary
- Github ä»åºå°åï¼https://github.com/zoujingli/ThinkLibrary
使ç¨è¯´æ
- ThinkLibrary éè¦ Composer æ¯æ
- å®è£
å½ä»¤
composer require zoujingli/think-library 6.0.x-dev
- æ¡ä¾ä»£ç ï¼ æ§å¶å¨éè¦ç»§æ¿
think\admin\Controller
ï¼ç¶å$this
å°±å¯è½ä½¿ç¨å ¨é¨åè½
// å®ä¹ MyController æ§å¶å¨
class MyController extend \think\admin\Controller {
// æå®å½åæ°æ®è¡¨å
protected $dbQuery = 'æ°æ®è¡¨å';
// æ¾ç¤ºæ°æ®å表
public function index(){
$this->_page($this->dbQuery);
}
// å½åå表æ°æ®å¤ç
protected function _index_page_filter(&$data){
foreach($data as &$vo){
// @todo ä¿®æ¹åå表
}
}
}
- å¿ è¦æ°æ®åºè¡¨SQLï¼sysdata å½æ°éè¦ç¨è¿ä¸ªè¡¨ï¼
CREATE TABLE `system_data`
(
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL COMMENT 'é
ç½®å',
`value` longtext COMMENT 'é
ç½®å¼',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_system_data_name` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ç³»ç»-æ°æ®';
- å¿ è¦æ°æ®åºè¡¨SQlï¼sysoplog å½æ°éè¦ç¨çè¿ä¸ªè¡¨ï¼
CREATE TABLE `system_oplog`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`node` varchar(200) NOT NULL DEFAULT '' COMMENT 'å½åæä½èç¹',
`geoip` varchar(15) NOT NULL DEFAULT '' COMMENT 'æä½è
IPå°å',
`action` varchar(200) NOT NULL DEFAULT '' COMMENT 'æä½è¡ä¸ºå称',
`content` varchar(1024) NOT NULL DEFAULT '' COMMENT 'æä½å
容æè¿°',
`username` varchar(50) NOT NULL DEFAULT '' COMMENT 'æä½äººç¨æ·å',
`create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'å建æ¶é´',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ç³»ç»-æ¥å¿';
- å¿ è¦æ°æ®åºè¡¨SQLï¼sysconf å½æ°éè¦ç¨å°è¿ä¸ªè¡¨ï¼
CREATE TABLE `system_config`
(
`type` varchar(20) DEFAULT '' COMMENT 'åç±»',
`name` varchar(100) DEFAULT '' COMMENT 'é
ç½®å',
`value` varchar(500) DEFAULT '' COMMENT 'é
ç½®å¼',
KEY `idx_system_config_type` (`type`),
KEY `idx_system_config_name` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ç³»ç»-é
ç½®';
- ç³»ç»ä»»å¡åéæ¯æéè¦çæ°æ®è¡¨
CREATE TABLE `system_queue` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`code` varchar(20) DEFAULT '' COMMENT 'ä»»å¡ç¼å·',
`title` varchar(50) NOT NULL DEFAULT '' COMMENT 'ä»»å¡å称',
`command` varchar(500) DEFAULT '' COMMENT 'æ§è¡æ令',
`exec_data` longtext COMMENT 'æ§è¡åæ°',
`exec_time` bigint(20) unsigned DEFAULT '0' COMMENT 'æ§è¡æ¶é´',
`exec_desc` varchar(500) DEFAULT '' COMMENT 'ç¶ææè¿°',
`enter_time` bigint(20) DEFAULT '0' COMMENT 'å¼å§æ¶é´',
`outer_time` bigint(20) DEFAULT '0' COMMENT 'ç»ææ¶é´',
`attempts` bigint(20) DEFAULT '0' COMMENT 'æ§è¡æ¬¡æ°',
`rscript` tinyint(1) DEFAULT '1' COMMENT 'åä¾æ¨¡å¼',
`status` tinyint(1) DEFAULT '1' COMMENT 'ä»»å¡ç¶æ(1æ°ä»»å¡,2å¤çä¸,3æå,4失败)',
`create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'å建æ¶é´',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_system_queue_code` (`code`),
KEY `idx_system_queue_title` (`title`) USING BTREE,
KEY `idx_system_queue_status` (`status`) USING BTREE,
KEY `idx_system_queue_rscript` (`rscript`) USING BTREE,
KEY `idx_system_queue_create_at` (`create_at`) USING BTREE,
KEY `idx_system_queue_exec_time` (`exec_time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ç³»ç»-ä»»å¡';
å表å¤ç
// å表å±ç¤º
$this->_page($dbQuery, $isPage, $isDisplay, $total);
// å表å±ç¤ºæç´¢å¨ï¼æ nameãtitle 模ç³æç´¢ï¼æ status 精确æç´¢ï¼
$this->_query($dbQuery)->like('name,title')->equal('status')->page();
// 对å表æ¥è¯¢å¨è¿è¡äºæ¬¡å¤ç
$query = $this->_query($dbQuery)->like('name, title')->equal('status');
$db = $query->db(); // @todo è¿éå¯ä»¥å¯¹dbè¿è¡æä½
$this->_page($db); // æ¾ç¤ºå表å页
表åå¤ç
// 表åæ¾ç¤ºåæ°æ®æ´æ°
$this->_form($dbQuery, $tplFile, $pkField , $where, $data);
å é¤å¤ç
// æ°æ®å é¤å¤ç
$this->_deleted($dbQuery);
ç¦ç¨å¯ç¨å¤ç
// æ°æ®ç¦ç¨å¤ç
$this->_save($dbQuery, ['status'=>'0']);
// æ°æ®å¯ç¨å¤ç
$this->_save($dbQuery, ['status'=>'1']);
æ件åå¨ç»ä»¶ï¼ oss å qiniu éè¦é ç½®åæ°ï¼
// é
ç½®é»è®¤åå¨æ¹å¼
sysconf('storage.type','æ件åå¨ç±»å');
// ä¸çäºåå¨é
ç½®
sysconf('storage.qiniu_region', 'æ件åå¨èç¹');
sysconf('storage.qiniu_domain', 'æ件访é®åå');
sysconf('storage.qiniu_bucket', 'æ件åå¨ç©ºé´å称');
sysconf('storage.qiniu_is_https', 'æ件HTTP访é®åè®®');
sysconf('storage.qiniu_access_key', 'æ¥å£ææAccessKey');
sysconf('storage.qiniu_secret_key', 'æ¥å£ææSecretKey');
// çææ件å称(é¾æ¥urlææ件md5)
$filename = \think\admin\Storage::name($url, $ext, $prv, $fun);
// è·åæ件å
容ï¼èªå¨åå¨æ¹å¼ï¼
$result = \think\admin\Storage::get($filename);
// ä¿åå
容å°æ件ï¼èªå¨åå¨æ¹å¼ï¼
$result = \think\admin\Storage::save($filename, $content);
// å¤ææ件æ¯å¦åå¨
boolean \think\admin\Storage::has($filename);
// è·åæ件信æ¯
$result = \think\admin\Storage::info($filename);
//æå®åå¨ç±»åï¼è°ç¨æ¹æ³ï¼
$result = \think\admin\Storage::instance('local')->save($filename, $content);
$result = \think\admin\Storage::instance('qiniu')->save($filename, $content);
$result = \think\admin\Storage::instance('txcos')->save($filename, $content);
$result = \think\admin\Storage::instance('alioss')->save($filename, $content);
// 读åæ件å
容
$result = \think\admin\Storage::instance('local')->get($filename);
$result = \think\admin\Storage::instance('qiniu')->get($filename);
$result = \think\admin\Storage::instance('txcos')->get($filename);
$result = \think\admin\Storage::instance('alioss')->get($filename);
// çæ URL 访é®å°å
$result = \think\admin\Storage::instance('local')->url($filename);
$result = \think\admin\Storage::instance('qiniu')->url($filename);
$result = \think\admin\Storage::instance('txcos')->url($filename);
$result = \think\admin\Storage::instance('alioss')->url($filename);
// æ£æ¥æ件æ¯å¦åå¨
boolean \think\admin\Storage::instance('local')->has($filename);
boolean \think\admin\Storage::instance('qiniu')->has($filename);
boolean \think\admin\Storage::instance('txcos')->has($filename);
boolean \think\admin\Storage::instance('alioss')->has($filename);
// çææ件信æ¯
$resutl = \think\admin\Storage::instance('local')->info($filename);
$resutl = \think\admin\Storage::instance('qiniu')->info($filename);
$resutl = \think\admin\Storage::instance('txcos')->info($filename);
$resutl = \think\admin\Storage::instance('alioss')->info($filename);
éç¨æ°æ®ä¿å
// æå®å
³é®åæ´æ°ï¼$where 为æ©å±æ¡ä»¶ï¼
boolean data_save($dbQuery, $data, 'pkname', $where);
éç¨ç½ç»è¯·æ±
// åèµ·get请æ±
$result = http_get($url, $query, $options);
// åèµ·post请æ±
$result = http_post($url, $data, $options);
ç³»ç»åæ°é ç½®ï¼åºäº system_config æ°æ®è¡¨ï¼
// 设置åæ°
sysconf($keyname, $keyvalue);
// è·ååæ°
$keyvalue = sysconf($kename);
UTF8å å¯ç®æ³
// å符串å å¯æä½
$string = encode($content);
// å å¯å符串解å¯
$content = decode($string);