快速入门
<br/>
>i 本文档的最新修订日期是:
> **2021-11-20**
# 首次使用
请完成服务器伪静态规则的配置,详见 【++**[路由](doc:tma1u6ks)**++】 一节。
配置完成后,即可开始编写代码。
# 模块简介
在路径 <font color="#c7254e">`/lib/core`</font> 中,包含了框架所有自带的类(Class)。但在我们在所有关于本框架的表述中,将把它称作 <font color="#c7254e">`模块`</font> 。
框架源码包中已经包含了许多常用模块,您也可以自行编写模块。
在路径 <font color="#c7254e">`/config/core`</font> 中,可能存在与模块名相同的 <font color="#c7254e">`配置文件`</font> 。
# 模块调用
* 语法与原生PHP调用类静态方法一致:
**<font color="#0099ff"><kbd>模块名</kbd> :: <kbd>方法名</kbd> ( <kbd>传参数组</kbd> )</font>**
* 举例:
**<font color="#0099ff"></font><font color="#999">\$Var=</font> <font color="#ff6600">Db</font> <font color="#0099ff">::</font> <font color="#ff6600">select</font> <font color="#0099ff">(</font> <font color="#999">\$Config</font> <font color="#0099ff">)</font> <font color="#999">;</font>**
那么将会把 <font color="#c7254e">`$Config`</font> 作为参数传入 <font color="#c7254e">`Db`</font> 模块中的 <font color="#c7254e">`select()`</font> 方法,并将返回的值存放在 <font color="#c7254e">`$Var`</font> 变量中。
如果模块的方法没有返回值,或不需要用到返回值,则无需在模块名前加上变量赋值语句。
>w 为了代码书写简洁,上述内容中已经默认使用了 <font color="#c7254e">`\core\`</font> 命名空间。
>i 传参数组中的键,即 <font color="#c7254e">`参数名`</font> 还可以用 <font color="#c7254e">`中文参数名`</font> 代替。
例如 <font color="#c7254e">`array('字段'=>'id')`</font> 等同于 <font color="#c7254e">`array('field'=>'id')`</font> ,增加代码可读性的同时减少记忆负担。
详情见各模块方法的参数说明。
# 模板
框架模板文件的默认路径是 <font color="#c7254e">`/source`</font> 。
模板文件将会在经过编译后存放在缓存目录 <font color="#c7254e">`/temp/cache`</font> 下。模板文件是不会被运行的,而缓存文件会被运行。
例如访问 <font color="#c7254e">`aaa.com/b/test`</font> 时,在 <font color="#c7254e">`/temp/cache`</font> 目录下,目录 <font color="#c7254e">`b/`</font> 和此目录下的 <font color="#c7254e">`test.php`</font> 是真实存在的,这些文件就是缓存文件。
# 缓存及自动编译
在 <font color="#c7254e">`/temp/cache`</font> 下的所有文件均为经过编译的 <font color="#c7254e">`缓存文件`</font> 。
框架具有自动编译机制,如果存在尚未编译的模板文件,或存在模板文件的 <font color="#c7254e">`修改时间`</font> 晚于缓存文件的修改时间且已经过了缓存有效期,则框架会对该模板自动进行编译。
>d 切勿直接修改缓存文件!超过缓存有效期后,被修改的缓存文件将被回滚。
如遇此类情况,请删除 <font color="#c7254e">`/temp/cache`</font> 目录下的对应文件进行缓存重建。
* 框架具有无效缓存清空机制,如果不存在缓存所对应的模板文件,则会 <font color="#c7254e">`清除`</font> 对应的缓存。即当您删除某个模板文件后,对应的缓存并不会立即被清空。只有在将来该缓存被请求时,才会清除缓存。
* 当服务器调整系统时间后,或服务器时间异常时,可能会导致自动编译 <font color="#c7254e">`失效`</font> 。框架会自动重置模板文件的修改时间来修复这个问题。如果仍然无法解决,请调整服务器时间,并清空 <font color="#c7254e">`/temp/cache`</font> 目录下的所有文件,或者使用 <font color="#c7254e">`Cache`</font> 模块重建缓存(详情见模块说明)。
# 文件引入&使用库
在实际场景中往往需要使用 <font color="#c7254e">`require`</font> 或 <font color="#c7254e">`include`</font> 引入一些常用的文件,但由于框架的编译机制为被动触发编译,因此对于引入的文件,无法自动触发编译。且Source目录下的模板文件经编译后能够被访问者访问,这与本框架提倡的高安全性严重背离。
框架现已内置lib目录的路径,如果需要引入lib目录下的 <font color="#c7254e">`test.php`</font> ,可通过如下方式引入:
* 快速引入:
<font color="#c7254e">`require('test.php');`</font>
* 通过物理路径:
<font color="#c7254e">`require(__ROOT__.'/lib/test.php');`</font>
# 报错机制
框架拥有完善的报错机制,可显示详细的报错信息和文件的路径、出错行号。
错误码对应的详细错误信息,请在文档 <font color="#c7254e">`错误码`</font> 中了解。
>d 由于PHP语言的限制,有少数在代码运行前的报错无法被捕获。此部分报错将由 <font color="#c7254e">`PHP系统`</font> 完成。
详情请参见 <font color="#c7254e">`Api`</font> 模块说明文档。
# 版权声明
> 本框架为免费开源、遵循Apache2开源协议的框架,但不得删除框架内文件的版权信息,违者必究。
>
> This framework is free and open source, following the framework of Apache2 open source protocol, but the copyright information of files are not allowed to be deleted,violators will be prosecuted to the maximum extent possible.
>
> ©2022 Bux. All rights reserved.