codeigniter是一套轻量、快速、灵活且安全的PHP全栈Web框架,可以为PHP开发人员提供功能完善的Web应用程序,它的目标是能够让你比从零开始更加快速的完成项目,提供了一套丰富的的类库来满足我们日常的任务需求,并且提供了一个简单的接口和逻辑结构来调用这些库。同时通过减少代码量,codeigniter让你更加专注于你的创造性工作,框架还将尽可能的保持其灵活性,以允许你以喜欢的方式工作,而不是被迫以其它方式工作。另外框架可以轻松扩展或替换核心部件,使系统按你期望的方式工作。ps:目前codeigniter4是框架的最新版本,专为PHP 7.4及以上(包括 8.2)版本打造,而CodeIgniter 3专为PHP 5.6及以上打造,最新稳定版本为 3.1.13。
为什么选择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.4版本
安全性
IncomingRequest:通过客户端提供的头部检测HTTPS问题已修复。 现在只在请求来自可信代理时信任 和 头部 配置于 。 请参见_ 更多信息请见。IncomingRequest::isSecure()X-Forwarded-ProtoFront-End-HttpsConfig\App::$proxyIPsSecurity advisory GHSA-7wmf-pw8j-mc78
查询构建器:已修复 SQL 注入漏洞。 当 与条件一起使用时, WHERE 子句中的绑定值被替换到生成的 SQL 中 他们的逃脱旗帜被忽视,因此他们从未被逃脱或引用。该 WHERE束缚现在可以像普通绑定一样逃脱。deleteBatch()deleteBatch()where()delete()
请参见_ 更多信息请见。Security advisory GHSA-c9w5-rwh3-7pm9
UploadedFile: 现在会净化客户端提供的 当没有第二个参数调用时,文件名。之前,未经消毒的 客户端文件名作为默认,允许路径遍历序列 (例如 )将上传的文件写入 预期目录。明确传递为第二个参数的名称则不是 经过消毒,仍由来电者负责。 请参见_ 更多信息请见。UploadedFile::move()../../public/shell.phpSecurity advisory GHSA-hhmc-q9hp-r662
验证:文件上传验证规则 现在还要核实客户端文件名的非空。之前,这些规则 仅根据其内容衍生的MIME类型来分类上传,因此一个具有 危险的客户端扩展名(例如,带有图片的前缀文件 magic bytes)可以在保持原始扩展为 的前提下通过验证 磁盘。 请参见_ 更多信息请见。is_imagemime_in.phpSecurity advisory GHSA-mmj4-63m4-r6h5
该规则现在在客户端文件名非空时拒绝上传 扩展不是图像扩展。该规则现在拒绝上传 当客户端非空文件扩展名与检测到的文件不匹配时 内容,与与 所用的扩展/内容协议相匹配。 上传的文件没有任何扩展名(例如JavaScript上传) 仍然被接受,因为规则验证了文件内容。is_imagemime_inext_inBlob
修复的漏洞
修复方法:通过@michalsn在#10236中阻止带有已有条件的更新批处理
修复:通过 #10251 中的 @memleakd 检测 Safari 版本
修复:#10281中@michalsn层嵌套变压器请求示波器泄漏
fix(model):通过 #10258 中的 @gr8man 传递$recursive参数到对象 ToRawArray 的父节点
修复方法:在#10307中@paulbalandan使用时保持包围式流滤波器MockInputOutput
修复:跳过 #10308 中已翻译的密钥,@paulbalandanspark lang:find
修正(过滤器):通过 #10303 中的 @gr8man 检查数组中的键和值InvalidChars
修复:在 #10295 中@gr8man 使用 RedisHandler 中的动态 lockMaxRetries 限制
修正:在从模型(即)生成实体时,保留子命名空间,@xgrind 在 #10232--return entity
修正:非字符串值的TypeError + #10305中@gr8man修正env()$_SERVEResc()
修复:由 #10316 中的 @ThomasMeschke 统一 BaseService::injectMock 中的套管
修复:通过 #10321 中的 @gr8man 规范化 SodiumHandler 参数和填充失效
修复(验证):通过在 #10328 中@gr8man,纠正required_without逻辑并防止数组密钥警告
修复:由 @Will-thom 在 #10233 中检查 phpini 中的空 ini 值
修复:在 #10367 中由 @gr8man 在 XML 导出中保持零值
修复:支持#10362中及@michalsn的数组索引getPostGet()getGetPost()
重构
重构:在#10326中@michalsn的窄原始维度类型Imageint
重构(HTTP):通过 #10330 中的@gr8man优化文件路径解析download()
refactor(database):通过在 #10340 中@gr8man baseBuilder 循环缓存 groupGetType,优化
重构:@paulbalandan在#10312中提升至phpstan-codeigniter v2.1
重构:用 #10345 中的 @paulbalandan 用更具体的类型替换类型mixed
重构:通过哈希查找和 @gr8man 在 #10344 中进行整数长度跟踪优化prepQuotedPrintable()
重构:在 #10354 中添加 @paulbalandan 的精确 phpdocsarrayCLI
重构(数据库):通过@gr8man #10351 优化字符串分配和循环不变量_processForeignKeys() 收起介绍展开介绍
- 下载地址
- 其他版本
-
{playpage:qitabanben_html}
发表评论
0人参与,3条评论软件排行榜
热门推荐
XMLBlueprint(XML编辑器) v22.2026.0525官方版78.61M / 简体中文
android studio(安卓集成开发工具) v2025.3.41.33G / 英文
android studio for linux v2025.3.41.37G / 英文
visual studio code中文绿色版 v1.122.1238.39M / 简体中文
vscode官方中文版 v1.122.1168.49M / 简体中文
visual studio code for linux官方版 v1.122.1221.64M / 英文
XMLBlueprint(XML编辑器)78.61M / 简体中文
smartgit中文版(git图形化管理工具)203.74M / 简体中文
猿编程电脑版239.83M / 简体中文
易编盒子官方版1.94M / 简体中文


