从 4.0.4 升级到 4.0.5
请参阅与安装方法相对应的升级说明。
突破性增强
Message::getHeader(s)
HTTP 层正朝着 PSR-7 兼容性迈进。为此,Message::getHeader() 和 Message::getHeaders() 已弃用,应分别替换为 Message::header() 和 Message::headers()。请注意,这也适用于所有扩展 Message 的类:Request、Response 及其子类。
HTTP 层的其他相关弃用项
Message::isJSON():直接检查“Content-Type”头Request[Interface]::isValidIP():使用 Validation 类和valid_ipRequest[Interface]::getMethod():$upper参数将被移除,请使用 strtoupper()Request[Trait]::$ipAddress:此属性将变为私有Request::$proxyIPs:此属性将被移除;直接访问config('App')->proxyIPsRequest::__construct():构造函数将不再采用Config\App,并且已变为可空,以帮助过渡Response[Interface]::getReason():改为使用getReasonPhrase()Response[Interface]::getStatusCode():显式int返回类型将被移除(无需操作)
ResponseInterface
此接口旨在包含任何框架兼容响应类所需的方法。框架所需的许多方法都缺失,现在已添加。如果您直接使用任何实现 ResponseInterface 的类,则它们需要与更新的要求兼容。这些方法如下
setLastModified($date)setLink(PagerInterface $pager)setJSON($body, bool $unencoded = false)getJSON()setXML($body)getXML()send()sendHeaders()sendBody()setCookie($name, $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = false, $httponly = false, $samesite = null)hasCookie(string $name, string $value = null, string $prefix = ''): boolgetCookie(string $name = null, string $prefix = '')deleteCookie(string $name = '', string $domain = '', string $path = '/', string $prefix = '')getCookies()redirect(string $uri, string $method = 'auto', int $code = null)download(string $filename = '', $data = '', bool $setMime = false)
为了便于使用此接口,这些方法已从框架的 Response 移至 ResponseTrait,你可以使用它,现在 DownloadResponse 直接扩展 Response 以确保最大的兼容性。
Config\Services
服务发现已更新,允许第三方服务(通过模块启用时)优先于核心服务。更新 app/Config/Services.php,以便该类扩展 CodeIgniter\Config\BaseService 以允许正确发现第三方服务。
项目文件
项目空间(根目录、app、public、可写)中的众多文件已更新。由于这些文件位于系统范围之外,因此在未经你干预的情况下不会更改。有一些第三方 CodeIgniter 模块可用于协助将更改合并到项目空间:在 Packagist 上探索。
注意
除了极少数的错误修复情况,对项目空间的文件所做的任何更改都不会破坏你的应用程序。此处记录的所有更改在下一个主要版本之前都是可选的,所有强制性更改都将在上面的章节中介绍。
内容更改
以下文件收到了重大更改(包括弃用或视觉调整),建议你将更新后的版本与你的应用程序合并
app/Views/*public/index.phppublic/.htaccesssparkphpunit.xml.distcomposer.json
所有更改
这是项目空间中收到更改的所有文件的列表;很多将是简单的注释或格式,对运行时没有影响
LICENSEREADME.mdapp/Config/App.phpapp/Config/Autoload.phpapp/Config/Boot/development.phpapp/Config/Boot/production.phpapp/Config/Boot/testing.phpapp/Config/Cache.phpapp/Config/Constants.phpapp/Config/ContentSecurityPolicy.phpapp/Config/Database.phpapp/Config/DocTypes.phpapp/Config/Email.phpapp/Config/Encryption.phpapp/Config/Events.phpapp/Config/Exceptions.phpapp/Config/Filters.phpapp/Config/ForeignCharacters.phpapp/Config/Format.phpapp/Config/Generators.phpapp/Config/Honeypot.phpapp/Config/Images.phpapp/Config/Kint.phpapp/Config/Logger.phpapp/Config/Migrations.phpapp/Config/Mimes.phpapp/Config/Modules.phpapp/Config/Pager.phpapp/Config/Paths.phpapp/Config/Routes.phpapp/Config/Security.phpapp/Config/Services.phpapp/Config/Toolbar.phpapp/Config/UserAgents.phpapp/Config/Validation.phpapp/Config/View.phpapp/Controllers/BaseController.phpapp/Controllers/Home.phpapp/Views/errors/cli/error_404.phpapp/Views/errors/cli/error_exception.phpapp/Views/errors/html/debug.cssapp/Views/errors/html/debug.jsapp/Views/errors/html/error_exception.phpcomposer.jsonenvlicense.txtphpunit.xml.distpublic/.htaccesspublic/index.phpspark