介绍:
只需要将xiunophp文件夹使用并安装
1 2 3 4 5 | <?ph
include './xiunophp.min.php' ;
$s = xn_encrypt( 'hello, world!' );
echo $s ;
?>
|
只需要引用核心文件,就可以使用XIUNO内置函数,十分简单便捷。
编码规范
XiunoPHP 提倡 Linux 的编码风格(小写 + 下划线),与 PHP 默认的命名风格保持一致,但如果您喜欢匈牙利和骆驼也没有关系。
1. 变量名,函数名全部为: 小写 + 下划线,比如:
<?php
$uid = 0;$username = '';mysql_connect();mysql_query();mysql_fetch_assoc();?>
2. 常量全部大写:
<?phpdefine('DEBUG', 1); // 1: 开发模式, 2: 线上调试:日志记录,0: 关闭define('APP_NAME', 'www');?>
3. 空格,缩进,换行,参考以下格式:
一个 TAB = 8 个空格,尽量减少 TAB 缩进。
<?phpfunction array_addslashes(&$var) {
if(is_array($var)) {
foreach($var as $k=>&$v) {
array_addslashes($v);
}
} else {
$var = addslashes($var);
}
return $var;}?>
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. 模板:
不要用 Smarty 等任何类型的模板“引擎”,他们不时真正意义上的引擎,只是一堆正则替换而已。而且效率低下,学习的时间成本高,浪费脑细胞。
直接使用 PHP 的 原生标签,比如:
1 | <?php include "./view/htm/header.inc.htm" ; ?>Hello, <?php echo $username; ?>!<?php include "./view/htm/footer.inc.htm" ; ?>
|
10. 目录约定:
为了便于部署和排查,约定以下目录用途(非强制):
Web 目录:/home/wwwroot/xxx.com
Web 日志:/home/wwwlog
MySQL 数据:/home/mysql
备份目录:/home/backup
Nginx 配置文件:/usr/local/nginx/conf/nginx.conf
MySQL 配置文件:/etc/my.cnf
PHP 配置文件:/usr/local/php/etc/php.ini
PHP-CGI 配置文件:/usr/local/php/etc/php-fpm.conf
11. 生产环境推荐:
CentOS + PHP7 + MySQL + Opcache + Yac