wekcms内容管理系统!
系统简介
PHP开源CMS管理系统!
目录架构
├─wekcms 系统根目录
│ ├─app 开发应用目录
│ ├─cache 系统文件缓存目录
│ ├─configs 配置文件目录
│ ├─functions 自定义函数库目录
│ ├─resources 静态资源存放目录
│ ├─route 路由规则目录
│ ├─templates 模板存放目录
│ ├─vendor composer组件目录
│ ├─wekcms wekcms框架核心目录
│ │ ├─core 框架核心文件
│ │ │ |─classes 框架类库文件
│ │ │ |─functions 框架函数文件
│ │ │ |─tmp 框架自用提示模板目录
│ │ ├─app 框架初始化文件
│ ├─index.php 入口文件目录
安装教程
使用gitee提供的方式下载
开发文档:
开发注意事项:
wekcms支持php5.6~7.3 php7.4包括7.4以上暂不兼容
模块的控制器名和方法名不能重复!
1:自定义路由
路由的规则定义在根目录的route目录下,框架初始化会加载route里所有的路由规则,路由规则建议一个模块是一个路由分组,不建议创建过多路由文件,有一点影响性能的事情都不要做!
路由文件的命名规则:文件名.route.php 路由文件必须以**.route.php**结尾才会被自动加载!
路由的定义:
//有效请求域名,为根域名
Route::get('/', function () {
dd('访问首页显示的内容,这是一个get请求的闭包路由,post请求无效');
});
//有效请求域名为 根域名/post
Route::post('post', function () {
dd('post请求才有效的闭包路由');
});
//有效请求域名为:根域名/all
Route::all('all', function () {
dd('任何请求类型的都有效,get,post等');
});
//有效请求域名为:根域名/map
Route::map('map', function () {
dd('任何请求类型的都有效,get,post等');
}, 'post,get');
//有效请求域名为:根域名/map
Route::map('map', function () {
dd('只有post请求类型的有效');
}, 'post');
//分组路由,分组路由不支持分组嵌套,路由还能写中文哦
//参数一是用户请求的前缀 参数二是转发到控制器方法的公共前缀
Route::group('wek', 'app\content', function () {
//有效请求域名为:根域名/wek/闭包
Route::get('/闭包', function () {
dd('闭包分组路由');
});
//有效请求域名为:根域名/wek/wek
//转发的是:app(目录)/content(模块)/content(控制器)/wek(方法)
//完整的是 app/content/content/wek 控制器和方法指建@隔开
Route::get('/wek', '\content@wek');
});
//内定固定参数tid值1,用于导航绑定栏目,记录栏目id
Route::get('wek', 'app\content\content@wek')->param(['tid' => 1]);
2:路由参数
以上url链接中,路由匹配的规则为 wek
路由的参数为wek后面的1和4,参数是以【-】隔开的,并且按照顺序1,2,3不包括.html后缀
获取路由参数:
public function wek()
{
dd($_GET);
}
打印的结果为:
Array
(
[s] => /wek-1-4.html
[tid] => 1
[url_1] => 1
[url_2] => 2
)
由此可见:
$_GET['url_1']的值为1
$_GET['url_2']的值为2
如果后面有更多的参数,依次类推,每个参数的值就是 url_参数的第几个的位数,从1计数,理论上,浏览器能写多少就能带多少
3:伪静态规则
Ngix伪静态规则
在ngix配置的location中这样写,宝塔面板直接选择tp伪静态也是可以的
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}
Apache伪静态规则
在根目录的index.php入口文件同级目录创建 .htaccess目录,并写入以下规则即可
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]