WeizePHP文档手册

html,body{height:100%}

body{max-width:800px;font-family:"Work Sans",sans-serif;margin:0 auto;line-height:1.7;font-size:20px;color:#333;padding:2em 1em;text-rendering:optimizeLegibility;height:100%}

@media screen and (max-width: 600px){body{max-width:100%;padding:1em}}

h1,h2,h3,h4,h5,h6{font-family:"Lato", "Helvetica Neue", Helvetica, sans-serif;font-weight:bold;line-height:1.8;margin:0;text-transform:capitalize}

a{color:#60c17d;text-decoration:none}

a:hover{color:#333}

p a{color:#333;text-decoration:none;background:-webkit-linear-gradient(transparent 90%, #85cf9b 10%);box-shadow:inset 0 0 0 0 #85cf9b;-webkit-transition:box-shadow ease 1s;-moz-transition:box-shadow ease 1s;transition:box-shadow ease 1s}

p a:hover{color:#fff;box-shadow:inset 0 -100px 0 0 #85cf9b}

figure{margin:0}

img{max-width:100%}

pre,code{overflow:auto;font-size:14px;border-radius:3px;border:1px solid #60c17d}

pre>code,code>code{border:none}

pre{padding:1em}

code{padding:0.1em}

blockquote{border-left:2px solid #60c17d;padding-left:1em;font-family:Georgia,Times,Times New Roman,serif;font-size:18px;font-style:italic}

.headline{font-size:4em}

@media screen and (max-width: 600px){.headline{font-size:2em}}

.post-headline{font-size:4em}

@media screen and (max-width: 600px){.post-headline{font-size:1.5em}}

.home{background-image:url(./public/images/left-arrow.svg);background-repeat:no-repeat;height:40px;width:40px;opacity:0.9;position:fixed;top:50px;left:50px}

.home:hover{opacity:1}

@media screen and (max-width: 1000px){.home{top:90%;left:90%;height:30px;width:30px;opacity:0.6}}

.video{width:100%;height:360px}

@media screen and (max-width: 1000px){.video{height:300px}}

@media screen and (max-width: 600px){.video{height:180px}}

#markdown-toc::before{content:"内容索引";font-weight:bold}

#markdown-toc ul{list-style:decimal}

#markdown-toc{border:1px solid #60c17d;padding:1.5em 2.2em;list-style:decimal;display:inline-block}

.red{color:#FF0000}

.tb_lib{width:100%;border-collapse:collapse;margin:0 auto}

.tb_lib th,.tb_lib td{padding:6px;border:1px solid #000}

.tb_lib th{background-color:#60c17d;text-align:left;color:#FFF}

.tb_lib tr.hover td{background-color:#C1FFC1}

.ft-p{font-size:12px;color:#ccc}

WeizePHP 文档

2017-04-20 19:42:00
  • 概览:

    • 缺点
    • 优点
  • 使用交流
  • 框架目录结构
  • 快速入门(动手写自己的 Hello world! 包含后台菜单添加)
  • 单一入口说明
  • 常量、变量、函数、类库、JS
  • 添加伪静态示例
  • 编码规范
  • 数据表字典
  • 许可协议

概览

WeizePHP是一款超小的PHP框架,使用MIT协议,您可以免费自由的应用于商业。她有后台、有权限管理、有完整的开发手册。入门简单,只要会php语法,就可以快速的开发各种应用和网站^_^。

目前常用于开发各类 网站企业管理系统手机APP接口...

缺点

负责任的告诉你,WeizePHP框架有一定的局限性,特殊的需求,可能需要修改核心代码。核心代码就几行而已,想怎么改,就怎么改。

优点

简单、易用、好维护!!!

使用交流

QQ群:297634163(WeizePHP框架)

E-mail:weizesw@gmail.com / 310472156@qq.com

QQ:310472156

目录结构

./app                      // 应用目录

./app/admin // 后台应用

./app/admin/article // 文章管理

./app/admin/home // 后台首页

./app/admin/login // 后登陆模块

./app/admin/nav // 导航管理

./app/admin/singlepage // 单页管理

./app/admin/system // 系统管理

./app/admin/user // 用户管理

./app/appapi // APP接口应用

./app/appapi/login // APP登陆接口

./app/content // 内容应用(系统默认加载的应用)

./app/content/article // 内容文章模块

./app/content/home // 内容首页(系统默认首页)

./app/content/singlepage // 内容单页模块

./app/general // 通用应用

./app/general/captcha // 通用验证码模块

./app/general/ueditor // 通用ueditor服务端模块

./app/general/upload // 通用上传模块

./app/member // 会员应用

./data // 数据目录

./data/backup_* // 备份目录

./data/cache // 缓存目录

./data/log // 系统日志

./data/tmp // 临时目录

./install // 框架安装目录

./lang // 语言包目录

./lib // 常用函数、类库目录

./public // 公共目录

./public/css // 公用css目录

./public/fonts // 公用字体目录

./public/images // 公用图片目录

./public/js // 公用js目录

./public/theme // 主题css/js/image目录

./public/ueditor // UEditor富文本编辑器

./public/webuploader // WebUploader上传组件

./theme // 主题模板

./theme/default // 主题默认模板

./upload // 上传目录

./weize // 框架核心目录

./weize/framework.php // 框架核心文件

./weize/function.php // 框架核心函数库

./weize/w_mysqli.class.php // 框架MySQL连接/分页类

./weize/w_user.class.php // 框架用户类

index.php 框架默认入口

admin.php 后台入口

appapi.php APP接口入口

general.php 通用应用入口

member.php 会员中心入口

docs.html WeizePHP开发文档

快速入门(动手写自己的 Hello world!)

1、在 ./app/content 目录下创建 hello 文件夹,并在 hello 文件夹下建立 index.php 文件

<?php

if(!defined('IN_WEIZEPHP')) { exit('Access Denied'); } // 禁止直接访问

$str = 'Hello World!'; // 赋值

$sql = "SELECT * FROM `{$wconfig['db']['tablepre']}user`";

$user = $wdb->get_row($sql); // 获取一条用户信息

include $wconfig['theme_path'] . '/content/hello/index.html.php'; // 包含模板文件

2、在 ./theme/default/content 目录下创建 hello 文件夹, 并在 hello 下建立 index.html.php 模板文件

<!DOCTYPE HTML>

<html>

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">

<title>Hello world!</title>

</head>

<body>

<?php echo $str; ?> <!-- 输出 -->

<?php print_r($user); ?> <!-- 打印输出用户信息 -->

</body>

</html>

3、访问刚刚做好的 hello 模块。下面是个示例网址:

http://localhost/weizephp/index.php?m=hello&a=index

想要开发新的模块,开发模式都跟这个 hello 模块类似。如果想要了解复杂一点的开发,可以查看系统自带的 article 文章模块和 singlepage 单页模块。

4、如果想在 后台 添加 hello 管理菜单。需要打开 ./lang/zh_cn/w_menu.inc.php 文件,然后添加如下代码,

$wmenu['admin/hello']      = array('name'=>'hello管理', 'display'=>1);

$wmenu['admin/hello/edit'] = array('name'=>'hello编辑', 'display'=>1);

之后,刷新一下后台,即可看到新添加的 hello管理 菜单。

同时,也在后台也添加 ./app/admin/hello/edit.php 模块文件,最后写一下具体的控制逻辑。

单一入口说明

index.php   框架默认入口

admin.php 后台入口

appapi.php APP接口入口

general.php 通用应用入口

member.php 会员中心入口

当访问 index.php?m=home&a=index 时,

程序读取的是首页模块,即 ./app/content/home/index.php 文件;

当访问 index.php?m=article&a=view&aid=1 时,

程序读取的是文章模块 ./app/content/article/view.php 文件,且ID为 1 的文章;

m 表示模块(即英文module)

a 表示模块下的一个动作文件(即英文action)

常量、变量、函数、类库、JS

// === 常量 ===

W_PERMISSION // 是否启用权限控制(1开启,0关闭)

W_APPNAME // 当前应用名

IN_WEIZEPHP // 默认值是TRUE.主要用于避免其他程序被非法引用

W_ROOT_PATH // 根目录

// === 变量 ===

$m // 当前模块

$a // 当前动作

$isajax // 是否是AJAX访问。1为是,0为否

$wflag // 当前脚本访问标识。如:content/home/index

$wconfig['theme_path'] // 主题模板目录

$wconfig['theme_skin'] // 主题皮肤css/js/image目录

$wconfig['db']['tablepre'] // 表前缀

$wconfig['public_path'] // 公共目录(启用CDN时有用)

$wconfig['upload_path'] // 上传(启用CDN时有用)

$wmenu // 菜单数组

$wlang // 语言包数组

// === 函数 ===

w_stripslashes($string) // 去除反斜线

w_addslashes($string) // 添加反斜线

// 截取部分字符串

w_substr($str, $start = 0, $length = 30, $charset = "utf-8", $suffix = false)

w_sizecount($size) // 数据大小统计

w_get_client_ip() // 获取客户端IP

w_random($length) // 生产随机字符串,如:w_random(6);

w_sign($array) // 签名函数

// 语言替换函数

w_lang($lang, $array = array())

// 发送cookie到浏览器

w_setcookie($name, $value, $expire = 0, $httponly = false)

// 成功提示函数

w_success($message, $url = '')

// 错误提示函数

w_error($message, $url = '')

w_rewriteurl($url) // 伪静态函数

w_get_siteurl() // 获取站点网址函数。如:http://www.75hh.com/

// === 类库 ===

// 数据库类实例化

$wdb = new w_mysqli();

---------------------------------

// 获取一条数据

$sql = "SELECT * FROM `w_user`";

$row = $wdb->get_row($sql);

---------------------------------

// 获取多条数据

$sql = "SELECT * FROM `w_user`";

$lists = $wdb->get_all($sql);

---------------------------------

// 分页

$sql = "SELECT * FROM `w_user`";

$data = $wdb->pagination($sql, 1); // 1条一页

$output = $wdb->pagination_output();

foreach($data as $val) {} // 遍历分页数据

echo $output; // 输出分页HTML

---------------------------------

// 用户管理类实例化

$wuser = new w_user();

---------------------------------

$wuser->sid // Session ID

$wuser->session // Session 值

$wuser->aid // Access Token ID

$wuser->accesstoken // Access Token 值

$wuser->ip // 当前用户的IP地址

$wuser->uid // 当前用户的 uid

$wuser->lastvisit // 当前用户的上次访问时间

$wuser->formtoken // 当前用户表单令牌

$wuser->username // 当前用户名

$wuser->roleid // 当前用户角色ID

$wuser->point // 当前用户积分

$wuser->balance // 当前用户余额

$wuser->realname // 当前用户真名

$wuser->nickname // 当前用户昵称

---------------------------------

// 注册用户

$result = $wuser->register($username, $username_again, $password, $password_again, $email, $email_again, $roleid = 0, $mobile = '');

# $result 状态码 #

1 正确状态

0 未知错误

-1 用户名只允许使用字母、数字、下划线,且必须需以字母开头

-2 用户名不能小于3个字符

-3 用户名不能大于15个字符

-4 该用户名已经被注册

-5 两次输入的用户名不一致

-6 两次输入的密码不一致

-7 密码不能小于6个字符

-8 密码不能大于15个字符

-9 E-mail格式有误

-10 该E-mail已经被注册

-11 两次输入的邮箱不一致

-12 手机格式不正确

-13 手机已经被占用

-14 登录账号不正确

-15 IP登录错误次数过多,请N分钟后再试

-16 账号登录错误次数过多,请N分钟后再试

-17 用户不存在,或者已经被删除,您还可以尝试N次

-18 登陆密码错误,您还可以尝试N次

---------------------------------

$wuser->login($username, $password, $mode = "session") // 登录.如果登陆错误,这里限制15分钟锁定

$wuser->logout() // 登出

$wuser->check_access_permission() // 检查访问权限

$wuser->get_curapp_user_menu() // 获取“当前应用”的“用户菜单”

$wuser->actionlog($loginfo) // 记录用户操作日志

---------------------------------

// === JS ===

w_dialog_success(message, url) // 成功对话弹出框

w_dialog_error(message) // 错误对话弹出框

w_dialog_confirm(message, ok) // 确认对话弹出框

w_dialog_custom(title, message, ok) // 自定义对话弹出框

添加伪静态示例

// 1、打开 ./config/w_config.inc.php 文件,设置 $wconfig['rewrite']['on'] = true; 开启伪静态

// 2、添加内容伪静态

$wconfig['rewrite']['content'] = array();

$wconfig['rewrite']['content'] = array(

'/^index.php\?m=singlepage&a=view&spid=(\d+)$/' => 'singlepage-view-$1.html', // 单页伪静态示例

);

// 3、打开 .htaccess 文件,开启伪静态,并添加“单页”伪静态(这里是Apache伪静态示例)

RewriteEngine on

RewriteRule ^singlepage-view-(\d+).html$ index.php?m=singlepage&a=view&spid=$1

“单页伪静态” Nginx 示例

server {

listen 80;

root /data/www/***;

server_name www.***.com ***.com;

location / {

index index.html index.htm index.php;

rewrite ^([^\.]*)/singlepage-view-(\d+)\.html$ $1/index.php?m=singlepage&a=view&spid=$2 last;

if (!-e $request_filename) {

return 404;

}

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /data/www/***$fastcgi_script_name;

include fastcgi_params;

}

}

编码规范

本规范由编程原则组成,融合并提炼了开发人员长时间积累下来的成熟经验,意在帮助形成良好一致的编程风格。

// === 文件命名 ===

index.php // 普通文件

menu.inc.php // 包含文件

extend.func.php // 函数文件

mysqli.class.php // 类库文件

framework.lang.php // 语言包文件

// === 常量命名 ===

全部使用大写字母命名,少数特别必要的情况下,可使用下划线“_”来分隔单词;

define('W_APPNAME', 'front'); // 前台应用

define('W_ROOT_PATH', dirname(__FILE__)); // 根目录

// === 变量、类、函数、表、字段命名 ===

一律为小写格式,除非必要,单词之间一般不使用下划线“_”进行分割;

以标准计算机英文为蓝本,杜绝一切拼音、或拼音英文混杂的命名方式;

变量命名只能使用项目中有据可查的英文缩写方式,

例如可以使用$data而不可使用$data1、$data2这样容易产生混淆的形式,

应当使用$articledata、$postdata这样一目了然容易理解的形式;

可以合理的对过长的命名进行缩写,例如$bio($biography),$ccb($ChinaConstructionBank),

前提是英文中有这样既有的缩写形式,或字母符合英文缩写规范;

必须清楚所使用英文单词的词性,在权限相关的范围内,

大多使用$allow***或$is***的形式,前者后面接动词,后者后面接形容词。

// === SQL语句书写 ===

所有SQL语句中,除了表名、字段名称以外,全部语句和函数均需大写;

数据库SQL语句中,所有数据必须加单引号,无论数值还是字串,以避免可能的注入漏洞和SQL错误。

$sql = "SELECT `username` FROM `{$wconfig['db']['tablepre']}user` WHERE `uid`='{$uid}'";

// === CSS 写作注意事项 ===

1. 属性写在一行内,属性之间、属性名和值之间以及属性与“{}”之间须有空格,例如:.class { width: 400px; height: 300px; }

2. 属性的书写顺序:

2.1. 按照元素模型由外及内,由整体到细节书写,大致分为五组:

位置:position,left,right,float

盒模型属性:display,margin,padding,width,height

边框与背景:border,background

段落与文本:line-height,text-indent,font,color,text-decoration,...

其他属性:overflow,cursor,visibility,...

2.2. 针对特殊浏览器的属性,应写在标准属性之前,例如:-webkit-box-shadow:; -moz-box-shadow:; box-shaow:;

3. 谨慎添加新的选择符规则,尤其不可滥用 id,尽可能继承和复用已有样式

4. 选择符、属性、值均用小写(格式的颜色值除外),缩写的选择符名称须说明缩写前的全称,例如 .cl -> Clearfix

5. 尽量避免使用各种 CSS Hack,如确实有必要,可以使用

6. 勿使用冗余低效的 CSS 写法,例如:

ul li a span { ... }

7. 慎用 !important

8. 建议使用在 class / id 名称中的词语

8.1. 表示状态:a->active

8.2. 表示结构:h->header,c->content,f->footer

8.3. 表示区域:mn->main,sd->side,nv-navigation,mu->menu

8.4. 表示样式:l-list,tab,p_pop

9. 开发过程中的未定事项,须用 [!] 标出,以便于后续讨论整理

数据表字典

w_config(站点配置表)

字段名 注释 备注 类型
ckey 键名 varchar(255)
cvalue 键值   text

w_user(用户表)

字段名 注释 备注 类型
uid 用户ID mediumint(8)
email 用户邮箱   char(40)
username 用户名   char(15)
mobile 手机号   char(11)
password 密码 char(32)
status 状态 0关闭,1启用 tinyint(1)
roleid 角色ID   smallint(5)
regtime 注册时间   int(11)
regip 注册IP char(15)
lastlogintime 上次登录时间   int(11)
lastloginip 上次登录ip   char(15)
logincount 登陆次数 mediumint(8)
point 积分   int(10)
balance 余额   decimal(10,2)
salt 盐值 char(6)
realname 真名 varchar(32)
nickname 昵称 varchar(32)

w_role(角色表)

字段名 注释 备注 类型
roleid 角色ID smallint(5)
status 状态 0关闭,1启用 tinyint(1)
rolename 角色名   varchar(32)
permission 权限   text

w_loginfailed(登陆失败锁定表)

字段名 注释 备注 类型
ipusername IP地址或者用户名 char(15)
logintime 登陆时间   int(10)
count 错误次数   tinyint(1)

框架所有表简单描述

w_accesstoken           // Access Token 表

w_actionlog // 用户操作日志表

w_adminlog // 管理员操作日志表

w_article // 文章表

w_article_attachment // 文章附件表

w_article_category // 文章分类表

w_article_content // 文章内容表

w_captcha // 验证码表

w_config // 配置表

w_loginfailed // 登陆失败锁定表

w_nav // 导航菜单表

w_role // 角色表

w_session // Session 表

w_singlepage // 单页表

w_singlepage_attachment // 单页附件表

w_singlepage_content // 单页内容表

w_upload // 上传表

w_user // 用户表

许可协议

MIT License

Copyright © 2013 - 2113 WeizePHP.

$(document).ready(function(e) {

// 返回按钮

$('#docs-back-btn').click(function() {

if( window.location.hash == '' ) {

return true;

} else {

window.history.back();

return false;

}

});

// 表格背景切换

$('.tb_lib tr').hover(

function(e) {

$(this).addClass("hover");

},

function(e) {

$(this).removeClass("hover");

}

);

});

一键复制

编辑

Web IDE

原始数据

按行查看

历史

php weize_docs.html相关推荐

最新文章

  1. CodeForces - 55D Beautiful numbers
  2. js 调用 jsp注意点
  3. org.hibernate.util.JDBCExceptionReporterorg.hibern
  4. 03_Flink本地安装、分别解压scala和Flink、配置环境变量、启动集群、提交一个job、停止集群
  5. python基本程序结构有几种_python基础梳理(一)(推荐)
  6. 通过Java编写一个服务器理解动态Web,静态Web
  7. 消防给水及消火栓系统技术规范_消防给水及消火栓系统技术规范5.1 消防水泵 习题...
  8. 实现前后端数据交互方法汇总
  9. c语言分治法求众数重数_五大常见算法策略之——递归与分治策略
  10. Java基于opencv实现图像数字识别(一),java开发面试笔试题
  11. html5扫面二维码逻辑
  12. GitHub排名第一!免费最”强“12306抢票神器,程序员再不用跪求加速包!
  13. LINUX安装中文字体SimHei
  14. 干货丨7款易上手C语言编程软件推荐
  15. OpenRefine开源数据清洗软件的GREL语言
  16. Python实现图书管理系统
  17. Win7 32 不能安装STM32 虚拟串口驱动解决方法
  18. 外链式样式表_WEB前端 CSS样式表
  19. bindiff 太慢,两小时没结果
  20. SOF文件生成JIC文件

热门文章

  1. 前端开发 做一个新闻列表
  2. 为什么小程序最适合知识付费?
  3. (转)如何在maven的pom.xml中添加本地jar包
  4. Linux 汇编学习
  5. 不好意思,00后黑客CEO登场了!
  6. 政企多样化发力 社区半径引领智慧社区生态建设
  7. SharePoint服务器端对象模型 之 访问文件和文件夹(Part 4)
  8. JavaScript级联国家地区
  9. scp 、ssh非22端口的服务器方法
  10. VNC客户端连接MacOS时一闪而过的解决办法