
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, LeCMS, ClassCMS, Fastadmin, BadouCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

wellcms 主程序架构采用函数风格的 MVC 分层架构,AOP 插件机制,面向切面编程。
开发约束:采用静态语言编程风格,有利于 Zend 引擎的编译和 OPCache 缓存,支持 PHP7*
为了保持统一性,wellcms 对类、函数和变量命名进行了约定。我们提倡 Linux 的编码风格(小写 + 下划线),与 PHP 默认的命名风格保持一致,如果您喜欢匈牙利命名和驼峰式命名法也可以。
1. 变量名,函数名全部为单词或缩写单词小写 + 下划线分割,禁止使用拼音,比如:
<?php $uid = 0; $username = ''; mysql_connect(); mysql_query(); mysql_fetch_assoc(); ?>
2. 常量全部大写:
<?php
define('DEBUG', 1); // 0: 关闭 1: 开发模式 2: 线上调试:日志记录,
define('APP_NAME', 'www');
?>3.空格,缩进(一个 TAB = 8 个空格),换行,参考以下格式:
<?php
define('SKIP_ROUTE', 1);
include './index.php';
function array2_merge($array1, $array2, $key = '') {
$arr = array();
foreach ($array1 as $k => $v) {
isset($v[$key]) ? $arr[$v[$key]] = array_merge($v, $array2[$k]) : $arr[] = array_merge($v, $array2[$k]);
}
return $arr;
}
?>4.单引号、双引号的使用
在 PHP 当中,尽量使用单引号,解析速度比双引号快。如果包含变量,为了代码的易读性,可以使用双引号,在双引号中的数组 key 不应该加单引号。在单引号中仅仅转义 \,其他字符都不转义,如 \t\r\n $。
<?php $sitename = '我在北京吸雾霾'; $info = "站点名称:$sitename"; $info = "用户名:$user[name]"; ?>
5. 类、继承、接口、构造、析构、魔术方法:
尽量不要使用 PHP 高级特性。高级特性不利于底层的优化,需要更多的学习和沟通成本。
比如 __get() __set() __call() 会让代码变得很难读,不利于错误排查,IDE 提示也不友好。
6. 正则表达式:
尽量使用单引号,分隔符为 # 禁止使用 e 修饰符。刚需请使用preg_replace_callback() 代替。尽量使用 \w \s \S 内置的表示方法,不要啰嗦的去写 [0-9a-zA-Z_] 。
WEB 开发过程中,禁止使用 / 作为分隔符,因为它在字符串中出现 / 的概率太高。
以下正则格式符合标准:
preg_match('#\w+@\w+.\w+#is', $email);
7. include、include_once、require、require_once:
尽量使用 include,速度快,并且不会中断业务逻辑。require 在文件不存在或不可读的时候,会暴力终止业务逻辑。
8. error_reporting:
在本地开发环境下使用 E_ALL,消灭所有 NOTICE。
线上环境使用 0,并且配置 php.ini error_log 记录到服务器日志,避免错误信息外泄。
9.使用 php 内置函数,php内置了很多函数,不要自己去写一些没有必要的函数。
10. 禁止使用 eval() 。
11. 尽量避免 autoload。
12. 尽量避免 $$var 多重变量。
13.尽量采用函数封装功能,通过前缀区分模块。
14.为了安全,所有业务一律解析到路由运行,不在 tmp 外的目录运行 php 文件。
15.操作数据库的语句,函数封装好使用,禁止在业务代码中使用 mysql 语句。
16.保持代码可读性,完整的注释,js 代码结束必须使用英文分号 “ ; ”,js 注释请使用块注释,即 /* 注释内容 */
17.尽量使用 bootstrap 内置的 class ,不要自己写 class 和 style ,当然你也可以完全放弃bootstrap使用其他前端框架。
如刚需,请定义 class 使用,新定义的id和class请加前缀,以免相互冲突(如:.well_tag{} #well_tag{}),颜色使用 bootstrap 内置的class 或 使用 wellcms 内置颜色。
颜色请查看 view/css/wellcms_x.css
颜色调用如 background: var(--gray-200);
如果您对网站的内容有任何想法或意见,请call我!~~
我为了避免黑客猜出我的管理地址,在后台-》设置-》相关设置-》安全设置里面填写了一个二级域名作为管理地址,并修改caches/configs/syste......
1、将“upload”目录下的文件上传至帝国CMS系统目录;2、插件安装完毕。******************** 卸载插件 ********************1、删除 /e/update/resetuser.php 文......
这个问题困扰我很久,终于找到原因了,都是pathinfo 配置的锅。由于nginx 是不支持 pathinfo模式,所以需要手动修改配置,添加下面几项让其支持location ~.php { ......
讯睿cms标签调用之推荐位文章调用:{module module=news flag=1 num=8} <div class="col-sm-4 col-md-3 col-mm-6 product_img" data-move-y="200p......
邮件配置示例以1438214726@qq.com 邮箱为例去到邮箱账号设置填写到邮件配置效果预览...
进入小程序后台 mp.weixin.qq.com点击设置 =》账号信息 =》 暂停服务 点击下暂停服务就行...
form 表单标签用于获取在后台创建的留言表单输出到前台,注意该标签不是自动生成表单支持 v2.2.1.20220603 及以上版本参数参数名称可选值默认值是否必填说明id-item-指定循......
第一个在:/e/admin/ecmseditor/infoeditor/config.js;第二个在:/e/admin/ecmseditor/tempeditor/config.js;第三个在:/e/data/ecmseditor/infoeditor/config.js;你要把这三......
扫码关注
回顶部
微信扫码分享