• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

wekcms: PHP开源CMS管理系统!

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

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    		入口文件目录

安装教程

  1. 使用gitee提供的方式下载
  2. 访问:域名/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>

开发计划

  • 完成wekcms步骤条安装功能

  • 完成模板引擎和缓存应用设计

  • app目录对模块,模型,细分化(修改路由组件)

  • 新增拦截器,并在路由注册拦截器

  • 内容模块的设计开发


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap