开源软件名称:wekcms
开源软件地址:https://gitee.com/wekyun/wekcms
开源软件介绍:
wekcms内容管理系统!系统简介PHP开源CMS管理系统! 目录架构├─wekcms 系统根目录│ ├─app 开发应用目录│ │ ├─model 数据表模型│ │ ├─modules 项目模块,核心开发目录│ │ ├─stop 拦截器存放目录│ ├─cache 系统文件缓存目录 │ ├─configs 配置文件目录│ ├─functions 自定义函数库目录│ ├─install 安装目录│ ├─resources 静态资源存放目录│ ├─route 路由规则目录│ ├─templates 模板存放目录│ ├─vendor composer组件目录│ ├─wekcms wekcms框架核心目录│ |─classes 框架类库文件,自动加载│ │ |─extend 扩展目录,初始化不自动加载│ │ |─functions 框架函数文件,自动加载│ │ |─tmp 框架自用提示模板目录│ │ ├─app 框架初始化文件│ ├─index.php 入口文件目录 安装教程- 使用gitee提供的方式下载
- 访问:域名/install 安装
开发文档:开发注意事项: - wekcms支持php5.6~7.3 php7.4包括7.4以上暂不兼容
- 模块的控制器名和方法名不能重复!
1:自定义路由路由的规则定义在根目录的route目录下,框架初始化会加载route里所有的路由规则,路由规则建议一个模块是一个路由分组,不建议创建过多路由文件,有一点影响性能的事情都不要做! 路由文件的命名规则:文件名.route.php 路由文件必须以**.route.php**结尾才会被自动加载! 路由的定义: //有效请求域名,为根域名Route::get('/', function () { dd('访问首页显示的内容,这是一个get请求的闭包路由,post请求无效');});//有效请求域名为 根域名/postRoute::post('post', function () { dd('post请求才有效的闭包路由');});//有效请求域名为:根域名/allRoute::all('all', function () { dd('任何请求类型的都有效,get,post等');});//有效请求域名为:根域名/mapRoute::map('map', function () { dd('任何请求类型的都有效,get,post等');}, 'post,get');//有效请求域名为:根域名/mapRoute::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');}); 2:路由参数http://wekcms.cc/wek-1-2.html 以上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:路由拦截器拦截器使用非常简单,下面开始说明: 1:创建拦截器 项目根目的 app/stop 用于存放拦截器,拦截器文件命名规则是user.stop.php ,以.stop.php 后缀结尾,在user.stop.php 中定义的方法就是拦截方法。 例如:创建一个用户类的拦截器 在app/stop创建了类文件 user.stop.php 定义了类方法auth ,就创建了一个用户类拦截器。 app/stop/user.stop.php <?phpclass user{ //用户认证验证拦截 public function auth() { //用于编写拦截器逻辑代码 }} 2:注册拦截器 注意:拦截器的使用必须搭配路由,否则无法使用 在路由注册闭包拦截器 <?php//在路由上面定义一个闭包拦截器Route::get('/', function () { dd('路由');})->RouteStop(function () { dd('闭包路由拦截器');}); 在路由上注册定义好的auth 拦截器 ->RouteStop('user.auth')就是注册拦截器,在定义路由的实体上注册拦截器要使用 RouteStop 方法。 <?phpRoute::get('/', function () { dd('路由');})->RouteStop('user.auth'); 在路由上注册分组拦截器 ->GroupStop('user.auth')就是注册分组的路由拦截器,在分组的实体上注册拦截器要使用 GroupStop 方法。 拦截器优先级:可以同时给路由分组和路由注册拦截器,路由的拦截器优先与分组的拦截器,就是说分组和路由都定义了拦截器,会先执行路由上注册的拦截器。 #分组路由,分组路由不支持分组嵌套Route::group('wek', 'app\modules\content', function () { Route::get('/closure', function () { dd('闭包分组路由'); })->RouteStop(function () { dd('闭包路由拦截器'); });//此处是路由分组的拦截器 })->GroupStop('user.auth'); 注册多个拦截器 路由和分组可以同时注册多个拦截器,但是闭包只能注册一个。 注册多个拦截器的写法就是,多个拦截器的执行顺序是从前往后,路由优先与分组。 //路由注册多拦截器,定义成数组RouteStop(['user.auth','user.auth2','user.auth3']);//路由分组注册多拦截器,定义成数组GroupStop(['user.auth','user.auth2','user.auth3']); 4:伪静态规则Ngix伪静态规则 在ngix配置的location中这样写,宝塔面板直接选择tp伪静态也是可以的 location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; }} Apache伪静态规则 在根目录的index.php入口文件同级目录创建 .htaccess目录,并写入以下规则即可 <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]</IfModule> 开发计划 |
请发表评论