Skip to content

Commit 7a44b18

Browse files
authored
升级到 4.5.4 (#166)
1 parent 544925b commit 7a44b18

File tree

14 files changed

+222
-133
lines changed

14 files changed

+222
-133
lines changed

source/changelogs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
.. toctree::
1313
:titlesonly:
1414

15+
v4.5.4
1516
v4.5.3
1617
v4.5.2
1718
v4.5.1

source/changelogs/v4.5.4.rst

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#############
2+
版本 4.5.4
3+
#############
4+
5+
发布日期:2024 年 7 月 27 日
6+
7+
**CodeIgniter4 的 4.5.4 版本发布**
8+
9+
.. contents::
10+
:local:
11+
:depth: 3
12+
13+
**********
14+
修复的错误
15+
**********
16+
17+
- **路由:** 修复了一个错误,即传递给 ``$routes->group()`` 的过滤器没有合并到传递给内部路由的过滤器中。
18+
- **CURLRequest:** 修复了一个错误,即在进行请求时,配置数组中的 ``version`` 字符串无法使用。
19+
20+
请参阅仓库的
21+
`CHANGELOG.md <https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md>`_
22+
以获取修复错误的完整列表。

source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
version = '4.5'
2727

2828
# The full version, including alpha/beta/rc tags.
29-
release = '4.5.3'
29+
release = '4.5.4'
3030

3131
# -- General configuration ---------------------------------------------------
3232

source/database/query_builder.rst

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,8 @@ $builder->fromSubquery()
206206
Join
207207
====
208208

209+
.. _query-builder-join:
210+
209211
$builder->join()
210212
----------------
211213

@@ -226,7 +228,7 @@ RawSql
226228

227229
.. versionadded:: 4.2.0
228230

229-
v4.2.0 开始, ``$builder->join()`` 接受一个 ``CodeIgniter\Database\RawSql`` 实例,它表示原始 SQL 字符串。
231+
v4.2.0 起,``$builder->join()`` 接受一个 ``CodeIgniter\Database\RawSql`` 实例作为 JOIN ON 条件,该实例用于表示原始 SQL 字符串。
230232

231233
.. literalinclude:: query_builder/102.php
232234

@@ -1329,13 +1331,13 @@ $builder->resetQuery()
13291331
.. php:method:: join($table, $cond[, $type = ''[, $escape = null]])
13301332
13311333
:param string $table: 要连接的表名
1332-
:param string $cond: JOIN ON 条件
1334+
:param string|RawSql $cond: JOIN ON 条件
13331335
:param string $type: JOIN 类型
13341336
:param bool $escape: 是否转义值和标识符
13351337
:returns: ``BaseBuilder`` 实例(方法链)
13361338
:rtype: ``BaseBuilder``
13371339

1338-
向查询添加 ``JOIN`` 子句。
1340+
向查询添加 ``JOIN`` 子句。自 v4.2.0 起,``RawSql`` 可以用作 JOIN ON 条件。另见 :ref:`query-builder-join`。
13391341

13401342
.. php:method:: where($key[, $value = null[, $escape = null]])
13411343

source/general/configuration.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,8 @@ CodeIgniter 期望 **.env** 文件与 **app** 目录一起位于项目的根目
261261

262262
如果在 :doc:`模块 </general/modules>` 中启用了 :ref:`auto-discovery`,则注册器可以在命名空间和文件之间在运行时更改配置属性。
263263

264+
.. note:: 此功能在 ``CodeIgniter\Config\BaseConfig`` 类中实现。因此,它不适用于 **app/Config** 文件夹中未继承该类的某些文件。
265+
264266
有两种实现注册器的方法: **隐式** 和 **显式**。
265267

266268
.. note:: 来自 **.env** 的值始终优先于注册器。

source/incoming/filters.rst

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,29 +62,33 @@
6262
配置过滤器
6363
*******************
6464

65-
配置过滤器运行时有两种方法。一种是在 **app/Config/Filters.php** 中进行配置,另一种是在 **app/Config/Routes.php** 中进行配置。
65+
配置过滤器的运行方式有两种。一种是在 **app/Config/Filters.php** 中进行配置,另一种是在 **app/Config/Routes.php** 中进行配置。
6666

67-
如果你想为特定的路由指定过滤器,请使用 **app/Config/Routes.php** 并参考 :ref:`URI Routing <applying-filters>`。
67+
如果你想为定义的路由指定过滤器,请使用 **app/Config/Routes.php** 并参考 :ref:`URI 路由 <applying-filters>`。
6868

69-
.. note:: 最安全的应用过滤器方法是 :ref:`禁用自动路由 <use-defined-routes-only>`,并 :ref:`设置过滤器到路由 <applying-filters>`。
69+
.. note:: 应用过滤器最安全的方法是 :ref:`禁用自动路由 <use-defined-routes-only>`并 :ref:`将过滤器设置到路由 <applying-filters>`。
7070

7171
app/Config/Filters.php
7272
======================
7373

7474
**app/Config/Filters.php** 文件包含四个属性,允许你精确配置过滤器的运行时机。
7575

76-
.. warning:: 建议你在过滤器设置中的 URI 末尾始终添加 ``*``。因为控制器方法可能比你想象的通过不同的 URL 访问。例如,当启用 :ref:`auto-routing-legacy` 时,如果你有 ``Blog::index``,它可以通过 ``blog``、``blog/index`` 和 ``blog/index/1`` 等方式访问。
76+
.. warning:: 建议你在过滤器设置中的 URI 末尾始终添加 ``*``。因为控制器方法可能比你想象的通过不同的 URL 访问。例如,当启用 :ref:`auto-routing-legacy` 时,如果你有 ``Blog::index()``,它可以通过 ``blog``、``blog/index`` 和 ``blog/index/1`` 等方式访问。
77+
78+
.. _filters-aliases:
7779

7880
$aliases
7981
--------
8082

81-
``$aliases`` 数组用于将简单名称与一个或多个完全限定的类名相关联,这些类名是要运行的过滤器:
83+
``$aliases`` 数组用于将一个简单的名称与一个或多个完全限定类名关联起来,这些类名是要运行的过滤器
8284

8385
.. literalinclude:: filters/003.php
8486

85-
别名是强制性的,如果你稍后尝试使用完整的类名,系统将抛出错误。以这种方式定义使得切换使用的类变得简单。非常适合当你决定需要更改到不同的身份验证系统时,因为你只需要更改过滤器的类即可完成。
87+
别名是强制性的,如果你尝试稍后使用完整的类名,系统会抛出错误。
88+
89+
以这种方式定义它们可以简化类的切换。当你决定需要更换不同的认证系统时,这种方式非常有用,因为你只需更改过滤器的类即可。
8690

87-
你可以将多个过滤器组合成一个别名,使复杂的过滤器组非常简单:
91+
你可以将多个过滤器组合成一个别名,使得应用复杂的过滤器集变得简单:
8892

8993
.. literalinclude:: filters/004.php
9094

@@ -131,7 +135,7 @@ $globals
131135

132136
.. warning:: 在 v4.4.7 之前,由于一个漏洞,被过滤器处理的 URI 路径没有进行 URL 解码。换句话说,路由中指定的 URI 路径和过滤器中指定的 URI 路径可能会不同。详细信息请参见 :ref:`upgrade-447-filter-paths`。
133137

134-
在过滤器设置中可以使用 URI 路径(相对于 BaseURL)的任何位置,你都可以使用正则表达式,或者像在这个例子中使用星号 (``*``) 作为通配符,匹配之后的所有字符。在这个例子中,任何以 ``api/`` 开头的 URI 路径都将被免于 CSRF 保护,但网站的表单将全部受保护
138+
在过滤器设置中,任何可以使用 URI 路径(相对于 BaseURL)的地方,你都可以使用正则表达式,或者像上面的例子中那样,使用星号 (``*``) 作为通配符来匹配其后的所有字符。在这个例子中任何以 ``api/`` 开头的 URI 路径都将被排除在 CSRF 保护之外,但网站的表单将全部受到保护
135139

136140
如果你需要指定多个 URI,可以使用 URI 路径模式数组:
137141

@@ -142,13 +146,15 @@ $methods
142146

143147
.. warning:: 如果使用 ``$methods`` 过滤器,你应该 :ref:`禁用自动路由(传统) <use-defined-routes-only>`,因为 :ref:`auto-routing-legacy` 允许任何 HTTP 方法访问控制器。以你不期望的方法访问控制器可能会绕过过滤器。
144148

145-
你可以将过滤器应用于所有某种 HTTP 方法的请求,如 POSTGETPUT 等。在此数组中,你需要以 **全小写** 指定方法名称。它的值将是要运行的过滤器数组:
149+
你可以对某个 HTTP 方法(如 ``POST``、``GET``、``PUT`` 等)的所有请求应用过滤器。其值将是一个要运行的过滤器数组:
146150

147151
.. literalinclude:: filters/008.php
148152

149153
.. note:: 与 ``$globals`` 或 ``$filters`` 属性不同,这些只能作为前置过滤器运行。
150154

151-
除了标准的 HTTP 方法外,这也支持一个特殊情况:``cli``。``cli`` 方法将应用于所有从命令行运行的请求。
155+
除了标准的 HTTP 方法外,这里还支持一个特殊情况:``CLI``。``CLI`` 方法将应用于所有从命令行运行的请求。
156+
157+
.. note:: 在 v4.5.0 之前,由于一个错误,你需要以 **小写** 指定 HTTP 方法名称。
152158

153159
$filters
154160
--------

source/incoming/routing.rst

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -350,12 +350,13 @@ HTTP 动词路由
350350
================
351351

352352
你可以通过在控制器之前或之后提供要运行的过滤器来更改特定路由的行为。这在认证或 API 日志记录时特别方便。
353+
353354
过滤器的值可以是字符串或字符串数组:
354355

355356
* 与 **app/Config/Filters.php** 中定义的别名匹配。
356357
* 过滤器类名
357358

358-
有关设置过滤器的更多信息,请参阅 :doc:`控制器过滤器 <filters>`
359+
请参阅 :ref:`控制器过滤器 <filters-aliases>` 了解更多关于定义别名的信息
359360

360361
.. warning:: 如果你在 **app/Config/Routes.php** 中为路由设置过滤器(而不是在 **app/Config/Filters.php** 中)
361362
建议禁用 Auto Routing(传统)。当启用 :ref:`auto-routing-legacy` 时,控制器可能可以通过与配置路由不同的 URL 访问,
@@ -364,7 +365,7 @@ HTTP 动词路由
364365
别名过滤器
365366
------------
366367

367-
你为过滤器值指定在 **app/Config/Filters.php** 中定义的别名:
368+
你可以为过滤器值指定一个 :ref:`app/Config/Filters.php 中定义 <filters-aliases>` 的别名。
368369

369370
.. literalinclude:: routing/034.php
370371

@@ -377,7 +378,7 @@ HTTP 动词路由
377378

378379
.. versionadded:: 4.1.5
379380

380-
你可以为过滤器值指定过滤器类名:
381+
你可以为过滤器值指定一个过滤器类名:
381382

382383
.. literalinclude:: routing/036.php
383384

@@ -394,7 +395,7 @@ HTTP 动词路由
394395
:ref:`从 4.1.4 升级到 4.1.5 <upgrade-415-multiple-filters-for-a-route>`
395396
了解详情。
396397

397-
你可以为过滤器值指定一个数组:
398+
你可以为过滤器值指定一个数组
398399

399400
.. literalinclude:: routing/037.php
400401

@@ -509,6 +510,8 @@ HTTP 动词路由
509510

510511
过滤器的值必须与 **app/Config/Filters.php** 内定义的别名之一匹配。
511512

513+
.. note:: 在 v4.5.4 之前,由于一个 bug,传递给 ``group()`` 的过滤器没有合并到传递给内部路由的过滤器中。
514+
512515
设置其他选项
513516
=====================
514517

source/installation/upgrade_420.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ Config/Constants.php
4242
composer.json
4343
=============
4444

45+
.. note:: 此步骤在 v4.5.0 或更高版本中不再需要。
46+
4547
如果你使用 Composer,在安装 CodeIgniter v4.1.9 或更早版本时,如果 ``/composer.json`` 的 ``autoload.psr-4`` 中存在类似下面的 ``App\\`` 和 ``Config\\`` 命名空间,你需要删除这些行并运行 ``composer dump-autoload``。
4648

4749
.. code-block:: text

source/installation/upgrade_454.rst

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#############################
2+
从 4.5.3 升级到 4.5.4
3+
#############################
4+
5+
请参考与你的安装方法相对应的升级说明。
6+
7+
- :ref:`Composer 安装 App Starter 升级 <app-starter-upgrading>`
8+
- :ref:`Composer 安装 将 CodeIgniter4 添加到现有项目 升级 <adding-codeigniter4-upgrading>`
9+
- :ref:`手动安装 升级 <installing-manual-upgrading>`
10+
11+
.. contents::
12+
:local:
13+
:depth: 2
14+
15+
*************
16+
项目文件
17+
*************
18+
19+
**项目空间** (root、app、public、writable)中的一些文件收到了更新。由于这些文件位于 **system** 范围之外,因此不会在没有你干预的情况下更改。
20+
21+
.. note:: 有一些第三方的 CodeIgniter 模块可以帮助合并项目空间的更改:
22+
`在 Packagist 上探索 <https://packagist.org/explore/?query=codeigniter4%20updates>`_。
23+
24+
所有更改
25+
===========
26+
27+
这是 **项目空间** 中所有收到更改的文件列表;许多只是简单的注释或格式调整,对运行时没有影响:
28+
29+
- app/Config/Events.php
30+
- composer.json

source/installation/upgrading.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
backward_compatibility_notes
1616

17+
upgrade_454
1718
upgrade_453
1819
upgrade_452
1920
upgrade_451

0 commit comments

Comments
 (0)