版本 4.0.0-beta.2

发布日期:2019 年 4 月 4 日

亮点

  • 许多修复和改进,重要的是针对模型和测试类

  • 模型现在需要一个主键

  • 生成的 API 文档可在 https://codeigniter4.github.io/api/ 访问

  • 验证规则已增强

  • .htaccess 加强了

新消息

  • Database.noPrimaryKey, forFindColumnHaveMultipleColumns, Database.forEmptyInputGiven

应用程序变更

  • 更新 app/Config/Events

  • 添加 app/Controllers/BaseController

  • 添加 tests/ 文件夹用于单元测试

  • 添加 phpunit.xml.dist 用于单元测试配置

变更文件

以下是变更文件的列表,并显示了 PR 编号。

  • .htaccess #1900

  • app/
    • Config/
      • Events #1856

    • Controllers/
      • BaseController #1847

      • Home #1847

  • contributing/
    • README.rst #1846

    • styleguide #1872

  • contributing.md #1846

  • phpdoc.dist.xml #1872

  • system/
    • Autoloader/
      • FileLocator #1860

    • Cache/Handlers/
      • FileHandler #1895

      • MemcachedHandler #1895

      • PredisHandler #1895

      • RedisHandler #1863, #1895

      • WincacheHandler #1895

    • CLI/
      • CLI #1891, #1910

    • Commands/
      • Server/Serve #1893

      • Utilities/Routes #1859

    • Config/
      • BaseConfig #1811

      • Routes #1847, #1850

    • Database/
      • BaseBuilder $1776, #1902

      • BaseConnection #1899

      • Forge #1844, #1899

      • MigrationRunner #1860, #1865

      • MySQLi/Connection #1896

      • MySQLi/Forge #1899

      • Postgre/Builder #1902

      • Postgre/Forge #1899

      • Query #1805, #1771

      • SQLite3/Builder #1902

      • SQLite3/Forge #1899

    • Debug/
      • Toolbar/Collectors/History #1869

      • Toolbar #1897

    • Events/
      • Events #1867

    • Exceptions/
      • ModelException #1829

      • PageNotFoundException #1844

    • Files/
      • File #1809, #1854

    • Helpers/
      • date_helper #d08b68

      • form_helper #1803

      • html_helper #1803

      • number_helper #d08b68, #1803

      • security_helper #d08b68

      • text_helper #d08b68, #1803

      • url_helper #d08b68, #1803

      • xml_helper #1803

    • Honeypot/
      • Honeypot #1894

    • HTTP/
      • Header #1769

      • IncomingRequest #1831

    • Language/en/
      • Database #1829, #1861, #1902

    • Router/
      • RouteCollection #1769

      • Router #1839, #1882

    • Session/
      • Session #1769

    • Test/
      • ControllerTester #1769, #1848, #1855

      • DOMParser #1848

    • Validation/
      • FormatRules #1762, #1863

      • Rules #1791, #1814, #1818, #1862

      • Validation #1769

      • Views/list #1828

    • View/
      • Filters #1769

      • Parser #1769

      • View #1769, #1827

    • CodeIgniter #1769, #1804, #1590

    • 通用 #1802, #895ae0

    • ComposerScripts #1804

    • 控制器 #1769, #1850

    • 实体 #1769, #1804

    • 模型 #1793, #1769, #1804, #1808, #1812, #1813, #1817, #1829, #1746, #1861

  • tests/system/
    • 缓存/
      • 处理程序/
        • FileHandlerTest #1796, #1895

        • MemcachedHandlerTest #1895

        • RedisHandlerTest #1895

      • CacheFactoryTest #1796

    • CLI/
      • CLITest #1910

    • Config/
      • BaseConfigTest #1811

      • ConfigTest #1811

    • Database/
      • Builder/EmptyTest #1902

      • Builder/SelectTest #1902

      • Live/ModelTest #1817, #1829, #1861

      • Live/WhereTest #1906

    • Events/
      • EventsTest #1867

    • HTTP/
      • ContentSecurityPolicyTest #1848

    • Router/
      • RouteCollectionTest #1822, #1912, #1913

    • Test/
      • ControllerTesterTest #1848, #1855

      • DOMParserTest #1848

    • Validation/
      • FormatRulesTest #1762

      • RulesTest #1791

    • View/
      • ViewTest #1827, #1836

    • ControllerTest #1850

  • user_guide_src/
    • cli/
      • cli_commands #1777

      • cli_library #1892, #1910

    • concepts/
      • services #1811

    • database/
      • examples #1794

    • dbmgmt/
      • forge #1844, #1899

      • migration #1860, #1865

    • extending/
      • basecontroller #1847

      • core_classes #1847

    • general/
      • common_functions #1802, #1895

    • helpers/
      • number_helper #d08b68

      • url_helper #1803

    • incoming/
      • routing #1908

    • libraries/
      • caching #1895

      • files #1790, #1854

      • pagination #1823

      • sessions #1843

      • validation #1814, #1828, #1862

    • models/
      • models #1817, #1820, #1829, #1746, #1861

    • outgoing/
      • view_layouts #1827

    • testing/
      • controllers #1848

合并的PR

  • #1913 更多 RouteCollection 测试用于覆盖。关闭 #1692

  • #1912 额外的 RouteCollectionTests

  • #1910 向 CLI 库添加 print 方法,以便您可以在同一行上多次打印

  • #1908 向用户指南添加过滤器参数

  • #1906 关于 #1775 的子查询相关测试用例

  • #1902 BaseBuilder 修正

  • #1900 更新 .htaccess 以提高安全性并进行缓存

  • #1899 数据库 Forge 修正

  • #1897 关于 #1779 的工具栏修复

  • #1896 使用 SSL 证书的 Mysql 连接问题(#1219)

  • #1894 拼写错误修复

  • #1893 修复 spark serve 并删除 escapeshellarg()

  • #1892 向用户指南添加 CLI 背景颜色列表

  • #1891 允许 CLI::strlen 为空参数

  • #1886 修复了问题 #1880,修复了一些拼写错误并更新了代码风格

  • #1882 关于 #1541 的路由器更改

  • #1873-1889 文档:移动命名空间声明并添加缺少的类 docblocks

  • #1872 文档:修复 phpdoc 配置

  • #1871 未匹配的缓存库 get() 返回 null

  • #1869 History::SetFiles 检查 #1778

  • #1863 模块级拼写错误更改

  • #1861 新方法 Find Column w.r.t. #1619

  • #1860 Migrationrunner 使用自动加载器

  • #1867 事件现在应该可以与任何可调用对象一起使用。修复 #1835

  • #1865 MigrationRunner 定义问题已解决

  • #1862 required_with 和 required_without 定义更改

  • #1859 忽略路由列表中的回调

  • #1858 DB 模块中的拼写错误更正

  • #1856 在 pre_system 事件中,当 ob_get_level() > 0 时,确保 ob_end_flush()

  • #1855 修复:ControllerTester::execute。修复 #1834

  • #1854 File::move 现在为重新定位的文件返回新的文件实例。修复 #1782

  • #1851 用根 CI4 版本替换旧的 CI3 .gitignore

  • #1850 保护可路由控制器方法

  • #1848 测试:修复并测试 Test/ControllerTest,已测试

  • #1847 默认情况下将 Controller 扩展到 BaseController

  • #1846 修复贡献链接

  • #1844 模型修复

  • #1843 替换 CI3 $this->input 引用

  • #1842 异常“forPageNotFound”缺少默认值

  • #1839 不要将斜杠替换为反斜杠到路由

  • #1836 测试:改进 ViewView 覆盖率

  • #1831 修复一些 PHPDoc 注释错误

  • #1829 改进:模型现在需要一个主键。这部分是为了保持代码……

  • #1828 修复:从验证视图中删除引导样式。

  • #1827 修复:向 View 库添加 include 方法以渲染视图部分……视图。

  • #1823 文档:从分页类中删除旧的 Bootstrap 引用

  • #1822 测试:增强 RouteCollection 覆盖率

  • #1820 修复:更正 model.rst 中的 sphinx 错误

  • #1819 改进:使用 phpDocumentor 为 API 文档添加 apibot

  • #1818 改进:exact_length 规则中的代码改进

  • #1817 改进:引入 Model setValidationMessage 函数

  • #895ae0 修复:使用旧命令时启动会话

  • #1814 增强:扩展 exact_length[1,3,5]

  • #1813 修复:Model::save 修复了早期的 PR

  • #1812 测试:改进过滤器覆盖率

  • #1811 测试:Config 模块覆盖率得到改进

  • #1809 修复文件移动失败。修复 #1785

  • #1808 修复:修复 save 方法返回值

  • #1805 文档:查询类更改

  • #1804 文档:一些基本功能更改

  • #1803 文档:一些助手更改

  • #1802 文档:通用函数更正

  • #1796 测试:改进缓存覆盖率

  • #1794 替换不存在的“getAffectedRows”

  • #1793 设置 Model->chunk 返回类型

  • #1791 修复:从 ValidationRules 中删除 is_numeric 测试

  • #d08b68 ControllerTester 中修复缺少 UserAgent 的问题

  • #1790 修正文档中的错别字,如问题 #1781 中所述

  • #1777 在示例中添加 CLI 命名空间

  • #1776 修复:仅替换字段名称中的最后一个运算符

  • #1771 修复:修复 matchSimpleBinds 中的拼写错误

  • #1769 方法和拼写方面的修正

  • #1762 修复:小数规则。它不应该接受整数吗?

  • #1746 改进:更新模型,以选择性更新 created_at / updated_at 字段。

  • #1590 改进:增强 404Override