PHP CI框架框架学习与踩坑记录(1)_蜜桃的灰灰的博客-CSDN博客
PHP CI框架框架学习与踩坑记录(2)_蜜桃的灰灰的博客-CSDN博客
PHP CI框架框架学习与踩坑记录(3)_蜜桃的灰灰的博客-CSDN博客
CI4中文文档欢迎使用 CodeIgniter4 — CodeIgniter 4.0.0 中文手册|用户手册|用户指南|中文文档
CI4英文文档Welcome to CodeIgniter4 — CodeIgniter 4.3.3 documentation
后续的几章没有实际例子演练,我就挑着比较感兴趣的功能进行练习了。
首先是辅助函数继承,辅助函数实际使用时候就是使用helper函数调用,之前提交表单时候就使用了form的辅助函数form_open,我以数组的辅助函数进行练习,首先先声明一个新类然后建一个新方法manual,使用helper调用辅助函数。
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
class Brray extends Controller
{
public function manual()
{
helper('array');
$arr = [1, 2, 3, 4, 5];
echo random_element($arr);
}
}
其实这个所谓的辅助函数继承是涉及到helper函数访问辅助函数的一个顺序问题,加载顺序规则如下(这里为了描述准确引用英文原版):
-
app/Helpers - Files loaded here are always loaded first.
-
{namespace}/Helpers - All namespaces are looped through in the order they are defined.
-
system/Helpers - The base file is loaded last.
因为app下Helpers是最早被访问的,所以我们可以在app/Helpers新建一个 array_helper.php文件,添加一个随机获取元素的功能,文件内容如下。
<?php
function random_element($array) {
shuffle($array);
return array_pop($array);
}
这样在进行函数调用时候会优先到app/Helpers下找是否存在random_element函数,如果没有再去system/Helpers里面找,这变相的扩展和重载了原数组辅助函数。
system/Helpers的原有辅助函数如下图所示。
在使用helper函数调用辅助函数时候不用带_helper.php部分,直接写前缀即可,配置路由后的运行结果如下。