版本 4.1.2
发布日期:2021 年 5 月 16 日
CodeIgniter 4.1.2 版发布
不兼容变更
修复了 current_url()
中的一个错误,该错误阻止了配置 indexPage
的返回值中包含该值。使用 App::$indexPage
的任何安装都应该期望 current_url()
及其所有依赖项(包括响应测试、分页器、表单辅助函数、分页器和视图解析器)返回的值发生变化。
增强功能
新增 HTTP 类
Cookie
和CookieStore
,用于抽象化 Web cookie。新增 HTTP 测试的
assertRedirectTo()
断言。新增日志处理程序
ErrorlogHandler
,可写入error_log()
。实体类。新增自定义类型转换功能。
路由中新增选项。
priority
选项可降低特定路由处理的优先级。Autoloader
类现在可以加载不包含 PHP 类的文件。Config\Autoload
类的$files
属性中将列出非类
文件。
变更
视图中的布局现在支持嵌套区段。
Response::getCookie
现在返回Cookie
实例,而不是 cookie 属性数组。Response::getCookies
现在返回Cookie
实例数组,而不是属性数组的数组。为了消除现代浏览器控制台的警告,空 samesite 值在派发 cookie 时将默认为
Lax
。Model::errors() 和 BaseModel::errors() 现在总是返回 array;没有定义变化,但 docblock 已更新。
Entity::castAs
的行为发生了变化。新增参数$method
。类型转换已移动到单独的处理程序中。实体类。将无效值传递给时间戳转换现在会引发异常。
Entity::castAsJson
使用外部转换处理程序JsonCast::get
。Entity::mutateDate
使用外部转换处理程序DatetimeCast::get
。为了使
Config\**
类能够从.env
获取各自的属性值,现在有必要用类的名称为属性命名空间。以前,属性名称就足够了,但现在不允许,因为它可以获取系统环境变量,如PATH
。数组辅助函数
_array_search_dot
现在标记为仅@internal
使用。由于dot_array_search
使用了_array_search_dot
,所以用户不应在代码中直接使用_array_search_dot
。CacheInterface::getMetaData()
对未命中返回null
,对命中返回包含至少expires
键的数组(设置为绝对时期过期时间)或null
(表示“永不过期”)。File、Memcached 和 Wincache 处理程序仍返回false
,这在未来的版本中将变为null
。
弃用功能
弃用
CodeIgniter\View\View::$currentSection
属性。弃用用于
CookieException
自身异常消息的无效 cookie samesite 的语言字符串和异常。弃用 CodeIgniterEntity,改用 CodeIgniterEntityEntity。
弃用
Response
的与 cookie 相关的属性,改为使用Cookie
类。弃用
Security
的与 cookie 相关的属性,改为使用Cookie
类。弃用
Session
的与 cookie 相关的属性,改为使用Cookie
类。弃用
Security::isExpired()
,改为使用Cookie
内部的过期状态。弃用
CIDatabaseTestCase
,改为使用DatabaseTestTrait
。弃用
FeatureTestCase
,改为使用FeatureTestTrait
。弃用
ControllerTester
,改为使用ControllerTestTrait
。统一并弃用
ControllerResponse
和FeatureResponse
,改用TestResponse
。弃用
Time::instance()
,改用Time::createFromInstance()
(现在接受DateTimeInterface
)。弃用
IncomingRequest::removeRelativeDirectory()
,改用URI::removeDotSegments()
。弃用
\API\ResponseTrait::failValidationError()
,改用\API\ResponseTrait::failValidationErrors()
。
错误修复
BaseConnection::query()
现在对失败的查询返回false
(除非DBDebug==true
,在这种情况下会抛出异常),并根据文档为写入类型的查询返回布尔值。
有关已修复的错误列表,请参见仓库的 CHANGELOG_4.1.md。