Skip to content

Commit cc80f95

Browse files
authored
升级到 4.5.3 (#165)
1 parent a4638eb commit cc80f95

File tree

127 files changed

+590
-325
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+590
-325
lines changed

source/_static/css/citheme.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,11 @@ html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(
245245
background-color: #fffff0;
246246
}
247247

248+
span.std,
249+
span.pre {
250+
text-wrap: nowrap;
251+
}
252+
248253
/* Messages ----------------------------------------------------------------- */
249254

250255
.rst-content .success {

source/changelogs/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
.. toctree::
1313
:titlesonly:
1414

15+
v4.5.3
16+
v4.5.2
1517
v4.5.1
1618
v4.5.0
1719
v4.4.8

source/changelogs/v4.5.2.rst

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#############
2+
版本 4.5.2
3+
#############
4+
5+
发布日期:2024年6月10日
6+
7+
**CodeIgniter4 的 4.5.2 版本发布**
8+
9+
.. contents::
10+
:local:
11+
:depth: 3
12+
13+
***************
14+
消息变更
15+
***************
16+
17+
- 添加了 ``Security.insecureCookie`` 消息。
18+
19+
**********
20+
修复的错误
21+
**********
22+
23+
请查看仓库的
24+
`CHANGELOG.md <https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md>`_
25+
以获取修复错误的完整列表。

source/changelogs/v4.5.3.rst

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#############
2+
版本 4.5.3
3+
#############
4+
5+
发布日期:2024年6月25日
6+
7+
**CodeIgniter4 的 4.5.3 版本发布**
8+
9+
.. contents::
10+
:local:
11+
:depth: 3
12+
13+
**********
14+
修复的错误
15+
**********
16+
17+
请查看仓库的
18+
`CHANGELOG.md <https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md>`_
19+
以获取修复错误的完整列表。

source/cli/cli_request.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ getOptions()
2929

3030
.. literalinclude:: cli_request/003.php
3131

32-
getOption($which)
32+
getOption($key)
3333
-----------------
3434

3535
返回被视为选项的特定命令行参数的值:

source/concepts/autoloader.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ CodeIgniter 提供了一个非常灵活的自动加载器,只需进行很少
4545
每行的键是命名空间本身。这个不需要尾部反斜杠。
4646
值是可以找到类的目录位置。
4747

48-
默认情况下,命名空间 ``App`` 位于 **app** 目录中,命名空间 ``Config`` 位于 ``app/Config`` 目录中。
48+
默认情况下,命名空间 ``App`` 位于 **app** 目录中,命名空间 ``Config`` 位于 **app/Config** 目录中。
4949

5050
如果你在这些位置根据 `PSR-4`_ 创建类文件,自动加载器将自动加载它们。
5151

@@ -72,6 +72,8 @@ Config 命名空间
7272

7373
配置文件位于 ``Config`` 命名空间中,而不是你可能预期的 ``App\Config`` 中。这使得核心系统文件即使在应用命名空间发生变化时也能始终找到它们。
7474

75+
.. note:: 自 v4.5.3 appstarter 版本起,``Config\\`` 命名空间已被添加到 **composer.json** 的 ``autoload.psr-4`` 中。
76+
7577
更改应用命名空间
7678
----------------------
7779

source/concepts/factories.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@
7272
.. literalinclude:: factories/013.php
7373
:lines: 2-
7474

75+
.. _factories-passing-fully-qualified-classname:
76+
7577
传递完全限定类名
7678
--------------------------------
7779

@@ -229,6 +231,8 @@ setOptions 方法
229231

230232
.. versionadded:: 4.4.0
231233

234+
.. important:: 除非你已经仔细阅读了这一节并理解了这个功能是如何工作的,否则不要使用这个功能。否则,你的应用程序将无法正常工作。
235+
232236
为了提高性能,实现了配置缓存。
233237

234238
先决条件
@@ -242,6 +246,8 @@ setOptions 方法
242246
工作原理
243247
============
244248

249+
.. important:: 一旦缓存,配置值在缓存被删除之前永远不会改变,即使配置文件或 **.env** 发生了变化。
250+
245251
- 如果 Factories 中的 Config 实例的状态发生变化,则在关闭之前将所有 Config 实例保存到缓存文件中。
246252
- 如果有缓存可用,则在 CodeIgniter 初始化之前恢复缓存的 Config 实例。
247253

source/concepts/goals.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
##############################
2+
设计与架构目标
3+
##############################
4+
5+
CodeIgniter 的目标是在最小化,最轻量级的开发包中得到最大的执行效率、功能和灵活性。
6+
7+
为了达到这个目标,我们在开发过程的每一步都致力于基准测试、重构和简化工作,拒绝加入任何对实现目标没有帮助的东西。
8+
9+
从技术和架构角度看,CodeIgniter 按照下列目标创建:
10+
11+
- **动态实例化。** 在 CodeIgniter 中,组件的导入和函数的执行都是在被请求的时候才执行,而不是全局的。除核心资源外,系统不需要任何其他资源,因此系统默认是非常轻量级的。HTTP 请求所触发的事件以及你设计的控制器和视图将决定哪些资源是需要加载的。
12+
- **低耦合。** 耦合是指一个系统中组件之间的依赖程度。组件之间的依赖程度越低,系统的重用性和灵活性就越好。我们的目标就是打造一个低耦合的系统。
13+
- **组件专一性。** 专一性指的是组件对某个目标的专注程度。在 CodeIgniter 中,每一个类和方法都是高度独立的,从而可以最大程度地被复用。
14+
15+
CodeIgniter 是一个动态实例化,高度组件专一性的低耦合系统。它在小巧的基础上力求做到简单、灵活和高性能。

source/concepts/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ CodeIgniter4 概览
1414
factories
1515
http
1616
security
17+
goals

source/concepts/services.rst

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@ CodeIgniter 4 中的 **服务** 提供了创建和共享新类实例的功能。
1616

1717
CodeIgniter 的所有核心类都以“服务”提供。这仅仅意味着,不是硬编码一个类名进行加载,而是在一个非常简单的配置文件中定义要调用的类。这个文件充当工厂的角色,用来创建所需类的新实例。
1818

19-
为什么使用服务?
19+
为什么使用服务
2020
=================
2121

22-
一个快速的示例可能会使事情更清楚,所以想象一下,你需要获取 Timer 类的一个实例。最简单的方法就是简单地创建该类的一个新实例:
22+
一个快速的例子可能会让事情更清晰,所以想象一下你需要引入一个 Timer 类的实例。最简单的方法可能就是直接创建这个类的一个新的实例:
2323

2424
.. literalinclude:: services/001.php
2525

26-
这工作得很好。直到你决定要使用另一个定时器类来替换它。也许这个定时器类具有默认定时器不提供的一些高级报告功能。为了做到这一点,你现在需要找到应用程序中使用了定时器类的所有位置。由于你可能已经将它们保留在那里以便持续运行性能日志,所以这可能是一个非常耗时且容易出错的处理方法。这就是服务派上用场的地方。
26+
这工作得很好。直到你决定用一个不同的计时器类来替代它。也许这个类有一些默认计时器不提供的高级报告功能。为了做到这一点,现在你必须找到你应用程序中使用计时器类的所有位置。由于你可能已经将它们保留下来,以持续运行应用程序的性能日志,这可能是一个耗时且容易出错的处理方式。这就是服务派上用场的地方。
2727

28-
与其自己创建实例,不如让一个中心类为我们创建类的实例。这个类非常简单。它只包含每个我们希望用作服务的类的方法。该方法通常返回该类的一个共享实例,并将它可能具有的任何依赖项传递给它。然后,我们将用调用此新类的代码替换定时器创建代码:
28+
我们不是自己创建实例,而是让一个中心类为我们创建类的实例。这个类保持非常简单。它只包含我们想要作为服务使用的每个类的方法。该方法通常返回该类的 **共享实例**,并将任何它可能具有的依赖项传递给它。然后,我们将替换我们的计时器创建代码,使用调用这个全局函数或服务类的代码:
2929

3030
.. literalinclude:: services/002.php
3131

@@ -40,7 +40,7 @@ CodeIgniter 的所有核心类都以“服务”提供。这仅仅意味着,不
4040

4141
.. literalinclude:: services/013.php
4242

43-
``$typography`` 是一个 Typography 类的实例,如果你再次调用 ``\Config\Services::typography()``,你将会得到完全相同的实例。
43+
``$timer`` 是一个 Timer 类的实例如果你再次调用 ``service('timer')``你将会得到完全相同的实例。
4444

4545
服务通常返回类的共享实例。下面的代码在首次调用时创建一个 ``CURLRequest`` 实例。第二次调用返回完全相同的实例。
4646

@@ -51,7 +51,7 @@ CodeIgniter 的所有核心类都以“服务”提供。这仅仅意味着,不
5151
获取新实例
5252
======================
5353

54-
如果你想获取 Typography 类的新实例,需要向参数 ``$getShared`` 传递 ``false``:
54+
如果你想获取 Timer 类的新实例,需要向参数 ``$getShared`` 传递 ``false``:
5555

5656
.. literalinclude:: services/014.php
5757

@@ -67,6 +67,8 @@ service()
6767

6868
.. literalinclude:: services/003.php
6969

70+
.. note:: 自 v4.5.0 起,当你没有向服务传递参数时,推荐使用全局函数 ``service()``,因为性能有所提升。
71+
7072
如果创建方法需要其他参数,可以在服务名称后传入:
7173

7274
.. literalinclude:: services/004.php

0 commit comments

Comments
 (0)