XiunoPHP入门

凨影 1366

什么是 XiunoPHP 4.0 ?

XiunoPHP - 保持 PHP 原来的味道! - Keep the PHP native style

XiunoPHP 并不是一个框架,它只是初始化了一些常用的全局变量,增加了一些常用的函数,可以认为是对 PHP 的一些功能的补充。合并后,它只有一个文件 xiunophp.min.php,可以不做任何配置,直接 include 后就可以使用。

你可以用任意姿势(过程式、面向对象、函数式)使用它,甚至和其他框架混用。在你需要某个函数和变量的时候,它刚好存在,用它就 OK 了。

如何获取?

XiunoPHP 4.0 基于宽松的 MIT 协议发布,所以您可以最大限度的使用它。

下载地址: https://bbs.oddfox.cn/thread-93.htm

解压后会得到一个目录 xiunophp,里面包含一个合并后的文件:xiunophp.min.php,这个文件可以存放在任何地方。

如何使用?

include 后直接使用里面的函数即可。

<?php
include './xiunophp.min.php';
$s = xn_encrypt('hello, world!');
echo $s;
?>
XiunoPHP入门 URL格式

XiunoPHP 4.0 支持 2 种 URL 格式:

http://domain.com/user-login.htm

http://domain.com/user/login

非 URL-Rewrite 需要加一个 ?

http://domain.com/?user-login.htm

http://domain.com/?user/login

如何获取参数(参数是按照位置,从 0 开始计数):

<?php
include './xiunophp.min.php';
$route = param(0);       // user
$action = param(1);     // login
?>
当然也可以直接用默认的参数格式:
http://domain.com/?route=user&action=login
## 如何配置 URL-Rewrite?
**Nginx:**
打开 nginx 配置文件 /usr/local/nginx/conf/nginx.conf 找到对应的虚拟主机配置处,追加:
location / { 
        rewrite "^(.*)/(.+?).htm(.*?)$" $1/index.php?$2.htm$3 last;
        index    index.html index.htm index.php;
        root     /data/wwwroot/xiuno.com;
} 
然后重新启动 nginx: service nginx restart
**Apache .htaccess**
如果Appache 支持 .htaccess,那么可以编辑 .htaccess 文件放置于根目录下:
RewriteEngine on
RewriteRule ^(.*?)([^/]*)\.htm(.*)$ $1/index.php?$2.htm$3 [L]
XiunoPHP入门 编码规范

XiunoPHP 提倡 Linux 的编码风格(小写 + 下划线),与 PHP 默认的命名风格保持一致,但如果您喜欢匈牙利和骆驼也没有关系。

1. 变量名,函数名全部为: 小写 + 下划线,比如:

<?php
$uid = 0;
$username = '';
mysql_connect();
mysql_query();
mysql_fetch_assoc();
?>

2. 常量全部大写


3. 空格,缩进,换行,参考以下格式:

一个 TAB = 8 个空格,尽量减少 TAB 缩进。


4. 单引号、双引号:

在PHP 当中,尽量使用单引号,解析速度比双引号快。

如果里面包含变量,为了代码的美观,可以使用双引号。

在双引号中的数组 key 不应该加单引号。

在单引号中仅仅转义 \\,其他字符都不转义,如 \\t\\r\\n $。


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 的 原生标签


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 5+ Opcache + Yac


联系QQ:77798085 赞助请点这里
管理员回复
    全部回复 (10)
    • yl 2020-6-24
      2
      楼主很辛苦,若是不回帖,心里过意不去,可是我打字实在不行,只好快速回复了,楼主不要见怪!
      亚太地区
      这个人很有个性,连签名都没有!
    • 无语西风 2020-6-24
      3
      心随我动,想回就回。
      亚太地区
      这个人很有个性,连签名都没有!
    • 乐乐网 2020-6-24
      4
      沙发我没有,板凳我没有,板也没有,只好站在后面排队支持!
      亚太地区
      这个人很有个性,连签名都没有!
    • 1451557259qqcom 2020-6-24
      5
      心情不好,来杯板蓝根!
      亚太地区
      这个人很有个性,连签名都没有!
    • 2862515939qqcom 2020-6-24
      6
      楼主,你写得实在是太好了。我惟一能做的,就只有把这个帖子顶上去这件事了。
      亚太地区
      这个人很有个性,连签名都没有!
    • 33 2020-6-24
      7
      楼主,你写得实在是太好了。我惟一能做的,就只有把这个帖子顶上去这件事了。
      亚太地区
      这个人很有个性,连签名都没有!
    • 6721364qqcom 2020-6-24
      8
      楼主很辛苦,若是不回帖,心里过意不去,可是我打字实在不行,只好快速回复了,楼主不要见怪!
      亚太地区
      这个人很有个性,连签名都没有!
    • 永恒的爱 2020-6-24
      9
      与人为善, 好运常伴!
      亚太地区
      这个人很有个性,连签名都没有!
    • kongfang 2020-6-24
      10
      顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶!
      亚太地区
      这个人很有个性,连签名都没有!
    • duduyududu 2020-6-24
      11
      小手一抖, 金币到手!
      亚太地区
      这个人很有个性,连签名都没有!