网易首页 > 网易号 > 正文 申请入驻

CodeIgniter 4 用7个模块把请求生命周期掰碎了讲

0
分享至

PHP框架里有个怪胎:Laravel堆功能堆到臃肿,它偏要反着来。CodeIgniter 4(CI4)的代码量只有前者的三分之一,却在2024年 still 活着,而且活得不错。

这篇不讲情怀,只画地图。读完你会知道一个HTTP请求进CI4之后,每一步被谁处理、代码该往哪写。

请求从哪进:入口文件与生命周期

所有请求先撞public/index.php,这是唯一入口。它干三件事:定义路径常量、引入自动加载、把控制权交给CodeIgniter核心类。核心类启动后,按固定顺序点火:加载配置→初始化日志→启动Session→解析路由→匹配控制器→执行过滤器→跑业务代码→渲染视图→返回响应。

整个过程像工厂流水线,每个工位只干一件活。CI4把这条线暴露得很干净,不像有些框架藏在一堆Provider和Service Container后面。

路由:从URL到控制器的匹配规则

路由文件在app/Config/Routes.php。CI4支持三种写法:闭包直接返回、指向控制器方法、或者命名路由反向生成URL。

关键细节:路由按定义顺序匹配,第一条命中就停。所以要把具体规则放上面,通配符放下面。RESTful资源路由用$routes->resource()一行搞定,会自动映射到标准的index/show/create/store/edit/update/destroy七个方法。

过滤器(Filter)可以绑在路由上,比如$routes->get('admin', 'Admin::index', ['filter' => 'auth'])。这是CI4的中间件实现,比CI3的Hook更直观。

控制器、模型与数据库层

控制器在app/Controllers/,继承BaseController就能拿到请求对象、响应对象、验证器、Session等全套工具。CI4的控制器很薄,推荐把业务逻辑塞到Model里。

模型层有两个选择:Entity+Model的ORM风格,或者直接Query Builder写原生SQL。Query Builder的链式调用设计得克制,没有Laravel Eloquent那种"魔法方法"陷阱。

数据库配置在.env或app/Config/Database.php,支持读写分离。迁移(Migration)和种子(Seeder)用Spark命令行跑,下面会讲。

视图、过滤器与配置系统

视图支持传统PHP模板,也支持简单的布局继承。渲染用return view('name', $data),数据自动转义防XSS。

过滤器(Filter)是CI4的新东西,三个钩子:before(路由匹配后、控制器前)、after(控制器后、视图前)、afterView(视图渲染后)。做权限校验、API签名验证、响应头注入都很顺手。

配置类在app/Config/,用属性存配置值,支持多环境覆盖。不像有些框架搞YAML/JSON/PHP混用,CI4就一种:PHP数组,快且可缓存。

Spark CLI:命令行工具集

Spark是CI4的内置CLI,php spark list看全部命令。常用:make:controller生成控制器骨架,migrate跑数据库迁移,db:seed灌测试数据,serve启动开发服务器。

自定义命令很简单,继承BaseCommand,写好run()方法,注册到app/Config/Commands.php。CI4的CLI和Web层共享模型和配置,不用维护两套逻辑。

CI4的文档里藏着一句话:「框架应该帮你做决定,但不该替你做决定。」这解释了为什么它没有ORM关联预加载、没有队列系统、没有开箱即用的API认证——这些你按需自己接。问题是,2024年了,你愿意为"轻量"放弃多少便利?

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
地头蛇砸了我家烧烤摊,妈妈不哭不闹,拿着一等功勋章还给国家

地头蛇砸了我家烧烤摊,妈妈不哭不闹,拿着一等功勋章还给国家

红豆讲堂
2025-03-27 10:57:30
就这张照片,他已经秒杀了绝大多数有钱人

就这张照片,他已经秒杀了绝大多数有钱人

动物奇奇怪怪
2026-04-16 15:22:15
马刺队史首人!文班亚马斩获魔术师约翰逊奖 战胜库里字母哥等人

马刺队史首人!文班亚马斩获魔术师约翰逊奖 战胜库里字母哥等人

罗说NBA
2026-04-17 06:18:28
林肯号航母伙食曝光:没有龙虾牛排,美国大兵在海上挨饿

林肯号航母伙食曝光:没有龙虾牛排,美国大兵在海上挨饿

小星球探索
2026-04-17 09:07:39
直到许家印当庭认罪悔罪,才发现,原来曹德旺早就猜中了他的结局

直到许家印当庭认罪悔罪,才发现,原来曹德旺早就猜中了他的结局

以茶带书
2026-04-15 23:00:50
这则污蔑中国人的假消息,不少日本人看不下去了……

这则污蔑中国人的假消息,不少日本人看不下去了……

环球时报国际
2026-04-17 00:17:01
苹果首次成为全球手机市场第一!份额21%,三星20%,这回是真的了

苹果首次成为全球手机市场第一!份额21%,三星20%,这回是真的了

数码Antenna
2026-04-16 11:52:53
王健林,被逼到崩溃边缘...

王健林,被逼到崩溃边缘...

鸣金网
2026-04-16 19:42:33
一季度GDP出炉:消费数据太扎心了!

一季度GDP出炉:消费数据太扎心了!

樱桃大房子
2026-04-16 21:16:49
间谍策反中企员工致项目停工停产 国安机关披露详情

间谍策反中企员工致项目停工停产 国安机关披露详情

极目新闻
2026-04-17 07:00:50
匈牙利新总理马扎尔将取消国营媒体!称其为“谎言工厂”

匈牙利新总理马扎尔将取消国营媒体!称其为“谎言工厂”

项鹏飞
2026-04-16 19:28:44
成都一小区菜刀从天而降,坠落儿童游乐区,业主:监控拍到来自8楼以上;警方正进一步调查

成都一小区菜刀从天而降,坠落儿童游乐区,业主:监控拍到来自8楼以上;警方正进一步调查

大象新闻
2026-04-16 22:49:09
永别了,背公式时代!波兰物理学家用一个算子统一数学

永别了,背公式时代!波兰物理学家用一个算子统一数学

新智元
2026-04-16 12:06:41
大外交|苏林12小时深度体验铁路“中国速度”

大外交|苏林12小时深度体验铁路“中国速度”

澎湃新闻
2026-04-17 04:25:32
​华为“最美接待团”:招聘现役空姐负责高端接待!

​华为“最美接待团”:招聘现役空姐负责高端接待!

虔青
2026-04-16 08:49:36
真是犟种!福建男子深夜补胎还价50被拒,竟踩着没气的胎把车开走

真是犟种!福建男子深夜补胎还价50被拒,竟踩着没气的胎把车开走

火山詩话
2026-04-17 07:08:22
抢走王朔,睡遍京圈,定居国外9年的“坏种”徐静蕾,成最终赢家

抢走王朔,睡遍京圈,定居国外9年的“坏种”徐静蕾,成最终赢家

日落于西
2026-04-15 16:04:57
牌面!赵心童占据克鲁斯堡海报C位 英媒泼冷水:墨菲会送他回家

牌面!赵心童占据克鲁斯堡海报C位 英媒泼冷水:墨菲会送他回家

风过乡
2026-04-17 09:28:22
业主反价130万!广州二手房杀疯了:14万套库存,只有这类房能涨

业主反价130万!广州二手房杀疯了:14万套库存,只有这类房能涨

科学发掘
2026-04-16 17:15:41
惨了!伊朗使用星链的用户将面临死刑,军方启用电子干扰星链

惨了!伊朗使用星链的用户将面临死刑,军方启用电子干扰星链

深度报
2026-04-16 22:38:25
2026-04-17 11:35:00
薛定谔的BUG
薛定谔的BUG
有态度网友ytd
1516文章数 35关注度
往期回顾 全部

科技要闻

Anthropic推出Opus 4.7,坦言依不及Mythos

头条要闻

男子快递被人力资源女同事私自拆开 几天后反被开除

头条要闻

男子快递被人力资源女同事私自拆开 几天后反被开除

体育要闻

皇马拜仁踢出名局,但最抢镜的还是他

娱乐要闻

丝芭传媒创始人王子杰去世,享年63岁

财经要闻

海尔与医美女王互撕 换血抗衰谁的生意?

汽车要闻

埃安N60预售11.58万起 标配激光雷达/零重力座椅

态度原创

手机
健康
亲子
数码
公开课

手机要闻

安卓Pixel Glow曝光,暗示谷歌Pixel 11系列手机配灯带

干细胞抗衰4大误区,90%的人都中招

亲子要闻

产后性冷淡:重绘“身体地图”,唤醒爱的愉悦记忆

数码要闻

Alienware联合Team Liquid推出《星球大战》主题键帽、鼠标垫

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版