Skip to content

Commit 72443d6

Browse files
authored
升级到 v4.6.1 (#170)
1 parent 916b729 commit 72443d6

File tree

19 files changed

+246
-30
lines changed

19 files changed

+246
-30
lines changed

.kilocodemodes

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
customModes:
2+
- slug: ci-translator
3+
name: CI 文档翻译
4+
description: CI 文档翻译
5+
roleDefinition: |-
6+
# 角色
7+
8+
你是一位资深计算机技术文档翻译专家,尤其精通英文 PHP 框架 CodeIgniter 用户手册到简体中文的精准翻译。你以严谨细致的专业精神著称,追求译文在语言和格式上均完美匹配原文,最终交付最高质量的技术文档。
9+
10+
## 专业技能
11+
12+
### 技能 1:卓越的英中技术翻译能力
13+
14+
- 英文人称代词 “you”、“your” 务必对应翻译为中文 “你”、“你的”,保持技术文档的直接性和专业性,禁用敬语 “您”。
15+
- 熟练应用中英文排版规范,中文与英文、中文与数字间自觉添加半角空格,除需保持原文的内容以外,标点符号使用全角标点符号,优化文档可读性。
16+
- 具备出色的上下文理解力,从全文把握技术概念和语境,确保译文在术语和逻辑上高度准确且一致。
17+
- 保持原文段落结构。
18+
- 杜绝任何原文内容遗漏。
19+
20+
### 技能 2:精确还原 ReStructuredText 源文件格式
21+
22+
- 对格式高度敏感,精确识别并完整保留 ReStructuredText 格式,严禁任何形式的修改或调整。
23+
- 精通 ReStructuredText 标记语言,熟练运用其规范进行翻译,确保文档结构与原文完全一致。
24+
- **务必** 原样保留 ReStructuredText 指令,如 “.. note::”、“.. warning::”、“.. important::”、“.. literalinclude::”、“.. contents::”、“.. versionadded::”,包括原始大小写和拼写,**禁止翻译或改动**。
25+
- **特别注意** 保留段落结尾的双冒号 (::) 和句首连续空格,它们是 ReStructuredText 语法组成部分,并非错误。
26+
- 不得增删任何格式符号或指令。
27+
- 保留原文换行。
28+
29+
### 技能 3:精准处理技术术语与代码
30+
31+
- 严格遵守既定术语规范。 存在明确中文约定的术语直接采用;无约定术语,依据行业惯例和上下文专业判断翻译,不可生搬硬造。
32+
- 代码与文本内容界限清晰。 代码块、代码示例、类名、函数名、变量名等代码元素 **一律不可翻译**,必须完整保留英文原文。
33+
- 提及 CodeIgniter 框架 Session 类库时,**始终使用英文原文 “Session”**,确保术语统一性和专业性。
34+
- helper 原则上翻译成辅助函数
35+
36+
### 技能 4:精湛的译文审校与优化能力
37+
38+
- 从中文技术文档读者角度审视译文,充分考虑中文阅读习惯和理解方式,确保语句流畅自然、逻辑清晰易懂,避免任何生硬、晦涩或机器翻译痕迹。
39+
- 在绝对忠于原文和不丢失格式等内容的前提下,允许并鼓励采用更符合中文表达习惯的方式进行翻译,提升文档学习效率和用户体验,最终有效传递技术知识。
40+
41+
## 严格约束
42+
43+
- 坚守最高翻译质量标准,严格执行所有上述规范。
44+
- 鉴于文档技术深度,你 **必须** 扎实掌握计算机科学领域及 PHP 框架 CodeIgniter 的基础知识和深入理解,熟悉核心概念、技术原理和常用术语,这是保证译文质量的根本前提。
45+
- 不能编造原文不存在的内容,也不能丢失任何知识点。
46+
groups:
47+
- read
48+
- edit
49+
- browser
50+
- command
51+
- mcp
52+
source: project

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.6.1
1516
v4.6.0
1617
v4.5.8
1718
v4.5.7

source/changelogs/v4.6.1.rst

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#############
2+
版本 4.6.1
3+
#############
4+
5+
发布日期: 2025 年 5 月 2 日
6+
7+
**CodeIgniter4 的 4.6.1 版本发布**
8+
9+
.. contents::
10+
:local:
11+
:depth: 3
12+
13+
********
14+
变更内容
15+
********
16+
- **Mimes**: 在 ``Config\Mimes`` 类中为 ``stl`` 扩展名添加了 ``model/stl`` 和 ``application/octet-stream`` MIME 类型。
17+
18+
************
19+
废弃功能
20+
************
21+
22+
- **Cache:** ``FileHandler::writeFile()`` 方法已被废弃。请使用 ``write_file()`` 代替。
23+
- **Cache:** ``FileHandler::deleteFiles()`` 方法已被废弃。请使用 ``delete_files()`` 代替。
24+
- **Cache:** ``FileHandler::getDirFileInfo()`` 方法已被废弃。请使用 ``get_dir_file_info()`` 代替。
25+
- **Cache:** ``FileHandler::getFileInfo()`` 方法已被废弃。请使用 ``get_file_info()`` 代替。
26+
27+
**********
28+
错误修复
29+
**********
30+
31+
- **CURLRequest:** 修复了在目标服务器进行多次重定向时,CURL 响应体中出现多个头部部分的问题。
32+
- **Cors:** 修复了 Cors 过滤器中的一个错误,该错误导致当另一个过滤器在 ``before`` 过滤器中返回响应对象时,未添加适当的头部。
33+
- **Database:** 修复了 ``Postgre`` 和 ``SQLite3`` 处理程序中的一个错误,其中复合唯一键在 ``upsert`` 类型查询中未被完全考虑。
34+
- **Database:** 修复了 ``OCI8`` 和 ``SQLSRV`` 驱动程序中的一个错误,其中 ``getVersion()`` 在数据库连接尚未建立时返回空字符串。
35+
- **Logger:** 修复了在记录消息时,``{line}`` 变量无法在不指定 ``{file}`` 变量的情况下使用的错误。
36+
- **Session:** 修复了当向 ``Session::setTempdata()`` 提供数组数据时,``Session::markAsTempdata()`` 会给出错误 TTL 的错误。
37+
- **Toolbar:** 修复了将 ``maxHistory`` 设置为 ``0`` 会在调试工具栏中产生 JavaScript 错误的问题。
38+
- **Toolbar:** 修复了将 ``maxHistory`` 设置为 ``0`` 会阻止日志文件被正确清除的问题。
39+
40+
请查看仓库的
41+
`CHANGELOG.md <https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md>`_
42+
以获取完整的错误修复列表。

source/conf.py

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

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

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

source/database/query_builder.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -813,6 +813,8 @@ $builder->upsert()
813813

814814
.. literalinclude:: query_builder/112.php
815815

816+
.. note:: 对于非 MySQL 的数据库,如果一个表包含多个键(主键或唯一键),在处理约束时默认会优先使用主键。如果你希望使用其他唯一键而非主键,请使用 ``onConstraint()`` 方法。
817+
816818
第一个参数是值的关联数组。
817819

818820
以下是使用对象的示例:

source/database/results.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,9 +250,9 @@ dataSeek()
250250

251251
用法:参见 `获取 stdClass 的数组`_ 。
252252

253-
.. php:method:: getCustomResultObject($class_name)
253+
.. php:method:: getCustomResultObject($className)
254254
255-
:param string $class_name: 结果集的类名
255+
:param string $className: 结果集的类名
256256
:returns: 包含提取行的数组
257257
:rtype: array
258258

source/dbmgmt/forge.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -442,10 +442,10 @@ $forge->modifyColumn()
442442

443443
创建新表。用法:参见 `创建表格`_。
444444

445-
.. php:method:: dropColumn($table, $column_name)
445+
.. php:method:: dropColumn($table, $columnNames)
446446
447447
:param string $table: 表名
448-
:param mixed $column_names: 逗号分隔的字符串或列名称数组
448+
:param mixed $columnNames: 逗号分隔的字符串或列名称数组
449449
:returns: 成功则为 true,失败则为 false
450450
:rtype: bool
451451

@@ -511,10 +511,10 @@ $forge->modifyColumn()
511511

512512
修改表列。用法:参见 `修改表中的字段`_。
513513

514-
.. php:method:: renameTable($table_name, $new_table_name)
514+
.. php:method:: renameTable($tableName, $newTableName)
515515
516-
:param string $table: 表的当前名称
517-
:param string $new_table_name: 表的新名称
516+
:param string $tableName: 表的当前名称
517+
:param string $newTableName: 表的新名称
518518
:returns: 成功则为查询对象,失败则为 false
519519
:rtype: mixed
520520

source/general/common_functions.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,9 +265,9 @@ CodeIgniter 提供了一些全局定义的函数和变量,在任何时候都可
265265

266266
.. note:: 当你将 ``Config\App:$forceGlobalSecureRequests`` 设置为 true 时,也会使用此函数。
267267

268-
.. php:function:: function_usable($function_name)
268+
.. php:function:: function_usable($functionName)
269269
270-
:param string $function_name: 要检查的函数
270+
:param string $functionName: 要检查的函数
271271
:returns: 如果函数存在且可安全调用则为 true,否则为 false
272272
:rtype: bool
273273

source/incoming/routing.rst

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,10 @@ HTTP 方法路由
429429

430430
这样做还有一个额外的好处,就是让视图更具可读性。
431431

432+
.. note:: 默认情况下,所有定义的路由都有与其路径匹配的名称,其中占位符被相应的正则表达式替换。例如,如果你定义一个路由如 ``$routes->get('edit/(:num)', 'PostController::edit/$1');``,你可以使用 ``route_to('edit/([0-9]+)', 12)`` 生成相应的 URL。
433+
434+
.. warning:: 根据 :ref:`routing-priority`,如果首先定义了一个未命名的路由 (例如 ``$routes->get('edit', 'PostController::edit');``),然后定义了另一个命名路由,其名称与第一个路由的路径相同 (例如 ``$routes->get('edit/(:num)', 'PostController::edit/$1', ['as' => 'edit']);``),第二个路由将不会被注册,因为它的名称会与第一个路由的自动分配名称冲突。
435+
432436
分组路由
433437
***************
434438

@@ -849,3 +853,12 @@ CodeIgniter 4 提供了一种简单的方法来使用 ``Router`` 类访问当前
849853

850854
.. note:: ``getFilters()`` 方法仅返回为特定路由定义的过滤器。
851855
它不包括全局过滤器或在 **app/Config/Filters.php** 文件中指定的过滤器。
856+
857+
获取当前路由的匹配路由选项
858+
===================================================
859+
860+
当我们定义路由时,它们可能具有可选参数:``filter``、``namespace``、``hostname``、``subdomain``、``offset``、``priority``、``as``。所有这些参数都已在上面详细描述过。
861+
另外,如果我们使用 ``addRedirect()``,我们还可以期待 ``redirect`` 键。
862+
要访问这些参数的值,我们可以调用 ``Router::getMatchedRouteOptions()``。以下是返回数组的示例:
863+
864+
.. literalinclude:: routing/074.php

source/incoming/routing/074.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
// Get the router instance.
4+
/** @var \CodeIgniter\Router\Router $router */
5+
$router = service('router');
6+
$options = $router->getMatchedRouteOptions();
7+
8+
echo 'Route name: ' . $options['as'];
9+
10+
print_r($options);
11+
12+
// Route name: api:auth
13+
//
14+
// Array
15+
// (
16+
// [filter] => api-auth
17+
// [namespace] => App\API\v1
18+
// [hostname] => example.com
19+
// [subdomain] => api
20+
// [offset] => 1
21+
// [priority] => 1
22+
// [as] => api:auth
23+
// )

0 commit comments

Comments
 (0)