
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年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我!~~
FastAdmin 致力于服务开发者,努力为开发者节省更多的时间。让大家有更多的时间读书、健身、开源、投资、帮朋友和陪家人。FastAdmin 还在不断完善自身,同时为了开发者更加......
H5 video标签如何设置取消下载和鼠标右键和播放控件显示?1,取消下载:在video标签加 controlslist="nodownload"这个属性2.取消鼠标在视频画面的右键行为<script> $("......
标签库可以应用到插件前台使用,也可作为扩展前台HkCms标签库。语法可参考 https://www.kancloud.cn/manual/think-template/1286424也可参考前台标签库,位置:app/index/tagl......
Pbootcms怎么搬家呢?今天给大家来讲一下。Pbootcms SQLite版本 搬家教程SQLite版本Pbootcms网站搬家很简单,只需将网站源码从ftp里全部......
通过return $this->view->fetch('自定义页面')返回自定义页面时,存在不显示页面导航栏问题,如图1所示,而菜单规则定义如图2所示。(图1)(图2)解决办法:追踪后台代码,......
pbootcms后台账号密码忘记了,怎么办?给刚入手pbootcms的新同学两个解决方法。方法一:PB密码重置工具下载《...
phpcms调用广告通常我们是直接使用get方式读取数据库,这种简单,但是代码有点多,记不住,所以可以采用封装为类似于list的方法(1)普通方......
www.xxx.com/mobile/mobile/形如这种无限个目录出现在地址上,说明问题出在伪静态上面,解决方法:1、进入伪静态设置界面2、需要按上图的提示(仅共你参考代码),对子目录进......
扫码关注
回顶部
微信扫码分享