Version 4.0.0-beta.2¶
Release Date: April 4, 2019
Highlights¶
- A number of fixes & improvements, importantly for the
Modeland 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.noPrimaryKeyDatabase.forFindColumnHaveMultipleColumnsDatabase.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