很多人写 PHP 项目时总被各种重型框架劝退,觉得配置繁琐、代码臃肿,其实 CodeIgniter 这套东西真挺适合那些想快速把想法落地的开发者。它最大的魅力在于“轻量”二字,整个框架打包加手册才一点六兆,放在服务器里几乎不占地方,但功能却一点都不含糊。我自己在做小工具时最喜欢它的灵活劲儿,不想用 MVC 架构?完全没问题,框架不会强迫你走某种套路,而是给你一堆现成的类库让你按需取用,想怎么折腾就怎么折腾。安全性方面也不用担心,CSRF 和 XSS 防护都是内置的,连 CSP 头都帮你配好了,对于个人开发者来说简直是省心神器。安装过程更是简单粗暴,解压上传改个配置文件就能跑,数据库连上就能干活,那种“几乎零配置”的感觉真的很爽。它的文档写得也很实在,从入门到手把手教程都有,不像有些框架让你对着源码猜半天。虽然 PHP 版本要求高了些,得用 8.1 以上,但这恰恰说明它在拥抱新特性。最近看到 v4.7.3 修复了文件上传验证的漏洞,这种及时修补细节的态度让人很安心。说到底,选它不是因为它多高大上,而是因为它足够尊重开发者的时间,让你把精力花在业务逻辑上,而不是跟框架配置较劲,这才是工具该有的样子。

为什么选择codeigniter框架?
1、小巧的框架
CodeIgniter 4 大小是 1.1MB,加上用户手册(epub)也只有 1.6MB。
2、出色的性能
CodeIgniter 的性能始终优于大多数同类框架。
3、不喜欢复杂,热爱简单
CodeIgniter 允许用户自由选择是否使用 MVC 架构。
4、强大的安全性
我们非常重视安全问题,内置针对 CSRF 和 XSS 攻击的保护。 CodeIgniter 4 增加了内容转义和 CSP
5、清晰与完善的文档
用户手册囊括了入门介绍、教程、“手把手”指导,还包括了框架组件的参考文档。
6、几乎 0 配置
基本设置都已经配置好了,仅需要配置你的数据库!
支持特性
基于MVC体系
超轻量级
对数种数据库平台的全特性支持
支持查询构造器
表单与数据验证
安全性与XSS过滤
会话管理
发送邮件类,支持附件、HTML或文本邮件、多协议(sendmail、SMTP、Mail)及更多
图像处理库(裁剪、缩放、旋转等),支持GD、ImageMagick和NetPBM
文件上传类
FTP类
本地化
分页
数据加密
基准测试
全页面缓存
错误日志
应用程序评测
日历类
User-Agent类
Zip编码类
模板引擎类
Trackback类
XML-RPC类
单元测试类
搜索引擎友好的URL
灵活的URL路由
支持钩子和类扩展
大量的辅助函数
codeigniter4服务器需求
一、PHP及所需扩展
需要PHP 8.1或更高版本,并启用以下 PHP 扩展:
intl
mbstring
json
二、可选的 PHP 扩展
1、你的服务器上应启用以下 PHP 扩展:
mysqlnd (如果你使用 MySQL)
curl (如果你使用 CURLRequest)
imagick (如果你使用 Image 类的 ImageMagickHandler)
gd (如果你使用 Image 类的 GDHandler)
simplexml (如果你格式化 XML)
2、当你使用缓存服务器时,需要启用以下 PHP 扩展
memcache (如果你使用 Memcache 和 Cache 类的 MemcachedHandler)
memcached (如果你使用 Memcached 和 Cache 类的 MemcachedHandler)
redis (如果你使用 Cache 类的 RedisHandler)
3、当你使用 PHPUnit 时,需要启用以下 PHP 扩展:
dom (如果你使用 TestResponse 类)
libxml (如果你使用 TestResponse 类)
xdebug (如果你使用 CIUnitTestCase::assertHeaderEmitted())
三、支持的数据库
大多数 Web 应用程序开发都需要数据库。 目前支持的数据库有:
MySQL,通过 MySQLi 驱动程序(仅版本 5.1 及以上)
PostgreSQL,通过 Postgre 驱动程序(仅版本 7.4 及以上)
SQLite3,通过 SQLite3 驱动程序
Microsoft SQL Server,通过 SQLSRV 驱动程序(仅版本 2012 及以上)
Oracle 数据库,通过 OCI8 驱动程序(仅版本 12.1 及以上)
安装说明
通过以下方法来安装CodeIgniter:
解压缩安装包;
将 CodeIgniter 文件夹及里面的文件上传到服务器,通常 index.php 文件将位于网站的根目录;
使用文本编辑器打开 application/config/config.php 文件设置你网站的根 URL,如果你想使用加密或会话,在这里设置上你的加密密钥;
如果你打算使用数据库,打开 application/config/database.php 文件设置数据库参数。
如果你想通过隐藏 CodeIgniter 的文件位置来增加安全性,你可以将 system 和 application 目录修改为其他的名字,然后打开主目录下的 index.php 文件将 $system_path 和 $application_folder 两个变量设置为你修改的名字。
为了达到更好的安全性,system 和 application 目录都应该放置在 Web 根目录之外,这样它们就不能通过浏览器直接访问。CodeIgniter 默认在每个目录下都包含了一个 .htaccess 文件,用于阻止直接访问,但是最好还是将它们移出能公开访问的地方,防止出现 Web 服务器配置更改或者 .htaccess 文件不被支持这些情况。
如果你想让 views 目录保持公开,也可以将你的 views 目录移出 application 目录。
移动完目录之后,打开 index.php 文件,分别设置好 $system_path 、 $application_folder 和 $view_folder 三个变量的值,最好设置成绝对路径,例如:“/www/MyUser/system”。
在生产环境还要额外再多一步,就是禁用 PHP 错误报告以及所有其他仅在开发环境使用的功能。在 CodeIgniter 中,可以通过设置 ENVIRONMENT 常量来做到这一点,这在 安全 这篇指南中有着更详细的介绍。以上就是全部安装过程!
应用程序流程图
1、index.php文件作为前端控制器,初始化运行CodeIgniter所需的基本资源;
2、Router检查HTTP请求,以确定如何处理该请求;
3、如果存在缓存文件,将直接输出到浏览器,不用走下面正常的系统流程;
4、在加载应用程序控制器之前,对HTTP请求以及任何用户提交的数据进行安全检查;
5、控制器加载模型、核心类库、辅助函数以及其他所有处理请求所需的资源;
6、最后一步,渲染视图并发送至浏览器,如果开启了缓存,视图被会先缓存起来用于后续的请求。
更新日志
v4.7.3版本
验证:ext_in 规则中的上传文件扩展名验证绕过 ext_in 文件上传验证规则现在验证客户端文件扩展名并验证其是否与检测到的 MIME 类型匹配。以前,ext_in 仅检查 MIME 派生的猜测扩展名,因此客户端扩展名不匹配的文件可以通过验证。



























共有 0条评论