Skip to content
Edit this page

Version 4.0.0-beta.2

Release Date: April 4, 2019

Highlights

  • A number of fixes & improvements, importantly for the Model and testing classes
  • Models now require a primary key
  • Generated API docs accessible at https://codeigniter4.github.io/api/
  • Validation rules have been enhanced
  • .htaccess beefed up

New messages

  • Database.noPrimaryKey
  • Database.forFindColumnHaveMultipleColumns
  • Database.forEmptyInputGiven

App Changes

  • Updated app/Config/Events
  • Added app/Controllers/BaseController
  • Added tests/ folder for unit testing
  • Added phpunit.xml.dist for unit testing configuration

Changed Files

The list of changed files follows, with PR numbers shown.

.
├── .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
│   ├── Common #1802, #895ae0
│   ├── ComposerScripts #1804
│   ├── Controller #1769, #1850
│   ├── Entity #1769, #1804
│   └── Model #1793, #1769, #1804, #1808, #1812, #1813, #1817, #1829, #1746, #1861
├── tests/system/
│   ├── Cache/
│   │   ├── Handlers/
│   │   │   ├── 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

PRs merged

  • #1913 More RouteCollection tests for overwriting. Closes #1692
  • #1912 Additional RouteCollectionTests
  • #1910 Added print method to CLI library so you can print multiple times on same line
  • #1908 Add filter parameters to User Guide
  • #1906 SubQuery related test cases w.r.t #1775
  • #1902 BaseBuilder corrections
  • #1900 Update .htaccess for better security and caching
  • #1899 Database Forge correction
  • #1897 Toolbar fix w.r.t #1779
  • #1896 Mysql connection issue with SSL cert (#1219)
  • #1894 Typo fixes
  • #1893 Fix spark serve with remove escapeshellarg()
  • #1892 Add CLI background color list to the user guide
  • #1891 Allow CLI::strlen null parameter
  • #1886 Fixed issue #1880, fixed a few typos and updated code style
  • #1882 Router Changes w.r.t #1541
  • #1873-1889 Docs: move namespace declarations & add missing class docblocks
  • #1872 Docs: fix phpdoc config
  • #1871 Unmatched Cache Library get() return null
  • #1869 History::SetFiles check #1778
  • #1863 Module wise Typos changes
  • #1861 New method Find Column w.r.t. #1619
  • #1860 Migrationrunner use autoloader
  • #1867 Events should actually work with any callable now. Fixes #1835
  • #1865 MigrationRunner issue with definition resolved
  • #1862 required_with and required_without definition changes
  • #1859 Ignore callbacks in routes list
  • #1858 Typos correction in DB module
  • #1856 ensure ob_end_flush() when ob_get_level() > 0 on pre_system event
  • #1855 Fix: ControllerTester::execute. Fixes #1834
  • #1854 File::move now returns new file instance for relocated file. Fixes #1782
  • #1851 Replace old CI3 .gitignore with root CI4 version
  • #1850 Secure routable controller methods
  • #1848 Test: fix & test Test/ControllerTest, tested
  • #1847 Extend Controller to BaseController by default
  • #1846 Fix contributing links
  • #1844 Model Fix
  • #1843 Replace CI3 $this->input reference
  • #1842 Exception 'forPageNotFound' missing default value
  • #1839 Don't replace slashes with backslashes in the to route
  • #1836 Test: Improve ViewView coverage
  • #1831 Fix some PHPDoc comment errors
  • #1829 Improve: Models now require a primary key. This is partially to keep the code ...
  • #1828 Fix: Remove bootstrap styles from validation views.
  • #1827 Fix: Adding include method to View library to render view partials... views.
  • #1823 Docs: Remove legacy Bootstrap references in Pagination class
  • #1822 Test: enhance RouteCollection coverage
  • #1820 Fix: Correct sphinx errors in model.rst
  • #1819 Improve: Add apibot for API docs using phpDocumentor
  • #1818 Improve: Code improvement in exact_length Rule
  • #1817 Improve: Model setValidationMessage functions introduced
  • #895ae0 Fix: Start session whenever using the old command
  • #1814 Enhance: extended exact_length[1,3,5]
  • #1813 Fix: Model::save fix for earlier PRs
  • #1812 Test: Improve Filters coverage
  • #1811 Test: Config module coverage improved
  • #1809 Fix failed file move. Fixes #1785
  • #1808 Fix: Fix save method return value
  • #1805 Docs: Query Class Changes
  • #1804 Docs: Some Base Functional Changes
  • #1803 Docs: Some Helper Changes
  • #1802 Docs: Common function correction
  • #1796 Test: Improve Cache coverage
  • #1794 Replace nonexistent "getAffectedRows"
  • #1793 Set Model->chunk return type
  • #1791 Fix: Remove is_numeric tests in ValidationRules
  • #d08b68 Fix in ControllerTester for missing UserAgent
  • #1790 Correction of typos in documentation as mentioned in issue #1781
  • #1777 Add CLI namespace to example
  • #1776 Fix: replace only last operator in field name
  • #1771 Fix: fix typo in matchSimpleBinds
  • #1769 Correction in Methods and Spellings
  • #1762 Fix: decimal rule. shouldn't it accept integers?
  • #1746 Improve: Update Model, to selective update created_at / updated_at field.
  • #1590 Improve: Enhance 404Override