Skip to content

Latest commit

 

History

History
1815 lines (1682 loc) · 206 KB

CHANGELOG.md

File metadata and controls

1815 lines (1682 loc) · 206 KB

Changelog

Full Changelog

Fixed bugs:

  • Bug: mentioned rc4 in the changelog file of V4 userguide #2599

Merged pull requests:

  • [doc] Removal of the 'rc' parameter from the installation / update co… #2604 (jlamim)

4.0.0 (2020-02-24)

Full Changelog

Fixed bugs:

  • Bug: CI cant display error with API Response Trait #2586
  • Bug: testOrHavingBy() requires a select #2584
  • Bug: Email->validateEmail() on wrong email address leads to TypeError #2580
  • Bug: $forge->dropColumn not allowing arrays #2576
  • Bug: CI4 set ID to NULL when I try insert a row #2557
  • "Required" rules are not being enforced at all by the model #2555
  • Bug: Debug Bar showing before the head tag #2545
  • Bug: Docs / Library Reference / Validation: missing important information on reset() method #2535
  • Bug: system/Config/BaseService.php getSharedInstance() will not return mocks with non-lowercase key #2534
  • Bug: multi-column WHERE not prefixed #2532
  • Bug: CodeIgniter\Files\File::getSize() - wrong type of result #2476
  • Bug: Move work with $_GET['page'] from Model to Pager #2467
  • Bug: ImageHandler has no reality checks #2421
  • Bug: No default HTTP protocol version is set when creating a new Response #2383
  • Bug: Filter wildcards ignore default methods #2455
  • trailing slash cause redirect to root #2445
  • Bug: Commands cannot accept many paths #2148

Closed issues:

  • Add an 'alpha_numeric_punct' rule to FormatRules #2549
  • Feature: Forge, Adding Foreign key for table already created #2543
  • Error In UserGuide #2530
  • Lack of test on Travis for PHP 7.4 and tests don't run on upcoming PHP versions #2293
  • Feature: model helper #2292
  • Issue with layouts renderer and sections => merge sections in one view #2491
  • Update package dependency version for kint-php/kint #2373

Merged pull requests:

v4.0.0-rc.4 (2020-02-07)

Full Changelog

Fixed bugs:

  • Bug: Class 'Locale' not found when I try to use Time::parse() #2519
  • Bug: Wrong Links for pager when having subfolders #2505
  • View Cell render not be call initController #2500
  • Bug: user guide compile failed. #2492
  • Bug: setAutoRoute to false not working #2480
  • Bug: CodeIgniter\Router\Router->checkRoutes() strpos() expects parameter 1 to be string, array given #2479
  • Bug: Unable to use ul() helper with out modification #2473
  • Bug: Cannot pass value in the function in ControllerTest #2470
  • Bug: $useTimestamps cause insert() exception #2469
  • Bug: prototype of setBody($data); method in CodeIgniter\HTTP\Message should be changed to setBody(string $data); #2466
  • Don't update it. It's rubbishBug: #2463
  • Bug: Autoload over Composer #2461
  • Bug: The docs say composer install instead of composer required #2457
  • Bug: if not CSPEnaled but i have some #2456
  • Bug: IsAJAX() relies on inconsistent headers #2454
  • Bug: #2448
  • Bug: Double use where and etc #2444
  • Bug: Double use esc function with form_input and etc... #2443
  • Bug: Entity casts do not cast the original data #2441
  • Bug: namespace view returns empty value #2440
  • Bug: php spark Call to undefined function CodeIgniter\Autoloader\get_filenames() #2439
  • Bug: Curly brace deprecation #2430
  • Bug: Routes and Namespace #2423
  • Bug: Validation not working #2418
  • Bug: Baseservice - getSharedInstance #2414
  • Bug: base_url() and redirect() not honoring baseURL with paths #2409
  • form_input double escaping data why ? #2405
  • Bug: initController not called in ResourceController #2404
  • Bug: #2397
  • URL Helper safe_mailto UTF8Bug: #2396
  • CSRF Filter redirect back not working #2395
  • Bug: 404 error page override with cache #2391
  • Bug: Mixed migration formats don't order #2386
  • Bug: \CodeIgniter\Model::validate() returns TRUE if $data is empty #2384
  • Bug: Usage of static::methodName in CodeIgniter\Config\Services prevents Service overriding #2376
  • Bug: Duplicate headers in response #2375
  • Bug: Nothing work with minimal config (DIRECTORY SEPARATOR) #2370
  • Bug: Spark issue with PHP install location #2367
  • Bug: current_url function not working as expected. #2365
  • Bug: localhost development server after edit the content not updated or reloaded #2363
  • Bug: with the parser, nl2br in a foreach duplicates entries. #2360
  • Bug: Prevents the use of global functions with parameters [Validation] #2357
  • Bug: lang('app.name') should prefer APPPATH.Language/Validation/en/app.php over installed packages #2354
  • Bug: Inappropriate delimiter used in fillRouteParams #2353
  • Bug: Please there is issue on the time and date guide in codeigniter 4 #2351
  • Bug: Model()->find(null) should return null value #2350
  • Bug: URL, Redirect and Pagination misbehave #2347
  • Bug: Toolbar ErrorException Division by zero #2340
  • Bug: Cannot pass a string param with a space to a custom parser plugin #2318
  • Bug: Logger Path Duplicated #2286
  • Bug: Email: SMTP Protocol Implementation @ Data Termination #2274
  • Bug: Redirect to route ignores path set in baseurl #2119

Closed issues:

  • $routes not do the job as well #2531
  • Multiple composer.json handling in codeigniter!! #2528
  • Mention about events in the upgrading doc pages #2521
  • Missing Constant in E-Mail #2512
  • Image Manipulation Class #2498
  • Schema param in the .env file #2483
  • system\Database\MigrationRunner->regress() resets instance variable $namespace to null #2474
  • Issue passing data to views #2464
  • currentURL & previousURL doesnt work in parser #2460
  • Double quotes #2459
  • Feature about Localization #2419
  • Documentation Fix Needed #2412
  • No such file or Directory found In Ubuntu 19.10 #2394
  • previous_url() not loading the base path together #2378
  • Wrong Logo on GitHub page #2372
  • How to use the pagination with view parser? #2371
  • Feature Request: Validation: in_db[table.field] #2366
  • Feature request #2361
  • Feature: AJAX route option #2310
  • Return value of CodeIgniter\Database\BaseConnection::getConnectStart() must be of the type float, null returned #2158
  • Create Security Guideline #73

Merged pull requests:

v4.0.0-rc.3 (2019-10-19)

Full Changelog

Fixed bugs:

  • Route can not work: Controller or its method is not found #2299
  • CURLRequest - supplied argument is not a valid File-Handle resource #Windows x64 #2202
  • FilterExceptions result in blank page #2077

Closed issues:

  • Codeigniter 4 not redirecting well. is not including the baseUrl well on redirect #2342
  • Session variable value set to 0 #2334
  • Undefined variable: errors SYSTEMPATH/Validation/Validation.php at line 651 #2331
  • Router Regex not working with controllers #2330
  • --host,--port and others are not working #2329
  • Type juggling can be eliminated if these three small changes are made #2326
  • url_title doesn't handle diacritics #2323
  • View Cell Feature ? #2322
  • autoRoute function issue in case of sub-directory #2319
  • Can't store multidimensional data with Session Library #2309
  • Model()->find() return NULL for existing row #2306
  • Requesting Model::getValidationRules() documentation #2304
  • Routes Not working #2301
  • ViewPath cannot be moved only another path added #2291
  • Version not updated? #2287
  • _remap is not working #2277
  • Debug Toolbar error not found tpl error and fix #2275
  • cURL request returns 404 #2250
  • Problem with renaming deleted_at column inside model #2248
  • App\Config\Routes loaded twice #2203
  • Feature idea: Model results by key #2167
  • Remove "separator" comment between function declarations? #2146
  • find() is returning one character string instead of boolean #2096
  • Database Groups in Migrations #2087
  • "Cannot call session save handler in a recursive manner" #2056
  • Model afterInsert return originals? #2045
  • debug toolbar renderTimeline couses a non well formed numeric value encountered error #2034
  • Mysql update , affectedRows return bug #2003
  • Add validation on exists database before created #1759

Merged pull requests:

v4.0.0-rc.2b (2019-09-28)

Full Changelog

Merged pull requests:

v4.0.0-rc.2.1 (2019-09-28)

Full Changelog

Closed issues:

  • listTables() failing to use correct prefix #2210
  • Query Builder Class documentation #2140

Merged pull requests:

v4.0.0-rc.2 (2019-09-27)

Full Changelog

Fixed bugs:

  • Add magic __isset to classes with __get #2219
  • CIDatabaseTestCase double-deletes tables #2206
  • Locals problems #2195
  • Translations are not loaded from composer repository #2120

Closed issues:

  • Query grouping not working for HAVING clause #2247
  • $builder->like() not support for HAVING clause #2242
  • invalid switch parameter #2239
  • DateTime::createFromFormat() parameter incorrect #2238
  • strlen() expects parameter string, integer given #2237
  • ini_set() expects parameter 2 to be string, integer given #2236
  • ini_set() expects parameter 2 to be string, integer given #2235
  • # ini_set() expects parameter 2 to be string, integer given #2234
  • Extending The Model #2223
  • BUG curl_setopt_array(): supplied argument is not a valid file-handle resource #2222
  • How do I dynamically modify the configuration? #2214
  • Document the "whoops" error page #2198
  • Fail to open system/bootstrap.php #2193
  • Function lang() / Type of return value #2192
  • Can we use codeigniter 4 on live server?? #2188
  • Custom query in model CI4 #2187
  • conflict between php zlib.output_compression and output buffering #2182
  • API Trait documentation fix - failValidationError #2176
  • Validation issue on multiple file upload #2175
  • exif_read_data #2161
  • Database count methods #2159
  • Devstarter $salt #2156
  • Migration migrate, rollback and create problems #2147
  • Query Builder getWhere Crash #2143
  • View: $parser->render(); #2086
  • Return value of lang() must be of the type string, array returned #2075
  • Wrong links for pager #2016
  • base_url() value dropped between namespaces #1942
  • Unable to use _remap without default method in controller #1928
  • RESTful resources #1765

Merged pull requests:

v4.0.0-rc.1 (2019-09-03)

Full Changelog

Implemented enhancements:

  • BaseConfig should support array values with dot syntax #454

Closed issues:

  • [internal function]: CodeIgniter\Debug\Exceptions->shutdownHandler() #2173
  • Message->setHeader allowing duplicates #2170
  • CLI: Exit status #2163
  • QB countAllResults shouldn't use LIMIT settings #2152
  • BaseBuilder::get() resets query even if reset = false #2141
  • Some migrations not running #2139
  • Migrations Refactor Namespaces #2138
  • $primaryKey forcefully 'needs' to be auto_increment #2133
  • response data not set #2124
  • RESTful behaviour #2122
  • Redis #2121
  • Toolbar download bug #2117
  • Packagist not updated with latest release? #2115
  • Fatal error Installing using composer #2114
  • Allow loading Common.php function overrides #2101
  • Result from database was auto encoded when using Entity #2088
  • Honeypot does not close the form #2084
  • Imagick Image library handler return array instead of boolean #2029
  • Migrations command should use the UTC datetime when creating new migrations #2018
  • FileLocator->getNamespaces with parameter #1866

Merged pull requests:

v4.0.0-beta.4 (2019-07-25)

Full Changelog

Fixed bugs:

  • Controller filters match too loosely. #2038

Closed issues:

  • File->getDestination fails without extension #2103
  • User Guide: UploadedFile Class #2102
  • Worries about postgresql errors #2097
  • README.md - Link to Announcement on Forums is a 404? #2094
  • Entity castAsJson returns an empty array #2080
  • Migrations Sequential field information is required #2076
  • function gussExtension return wrong result, return csv instead of right answer "txt" or "text" #2066
  • Unexpected empty "query" property when returning CodeIgniter\HTTP\URI #2062
  • Multiple rules for file upload always return false #2061
  • The assets of the public_folder are not loaded #2047
  • Modify Model's deleted field to be a date #2041
  • Filter Config not quite working with Routes? #2037
  • force_https() doesn't redirect #2033
  • URI segments passed in as method parameters skips segments with value as 0 (zero) #2032
  • /System/Debug/Toolbar/Collectors/Routes.php on line 83 #2028
  • php spark not working #2025
  • PR#2012 caused 404 exception in spark #2021
  • Cache config #2017
  • CodeIgniter\Entity Setter doesn't work #2013
  • validation match[x] don't work anymore... if custom setter is used. #2006
  • Paths issue when moving Views outside of app folder #1998
  • View Parser Register Plugins as closures not works! #1997
  • View Parser site_url not works? #1995
  • CURLRequest not respecting debug flag #1994
  • Entity null values cause database error #1992
  • SQLite driver throws exception when using dropForeignKey #1982
  • Security: DotEnv loads DB password plaintext in $_SERVER #1969
  • Feature: FK Constraint Enable/Disable #1964
  • redirect($namedRoute) missing helpful exception #1953

Merged pull requests:

v4.0.0-beta.3 (2019-05-06)

Full Changelog

Fixed bugs:

  • travis-ci build broken #1830
  • [Re-opened] 404 File not found when running CodeIgniter on local Apache web server and virtual hosts #1400
  • MySQLi SSL verify #1219

Closed issues:

  • SQLite driver doesn't drop indexes when dropping a table #1983
  • About mysqli options MYSQLI_OPT_INT_AND_FLOAT_NATIVE #1979
  • Toolbar won't accept custom collectors #1971
  • 404 Error in pathinfo mode #1965
  • A controller parameter without default value creates ReflectionException error #1948
  • Wrong datetime on history debug toolbar #1944
  • Appstarter is not working after installation #1941
  • AppStarter Vanilla Installation - No hint that writable directory is not writable #1934
  • Updating appstarter with composer does not take composer.phar into account #1932
  • Problem with extending core class. #1922
  • Debug Toolbar causes error if an array is provided as session value since Beta 2 #1919
  • Wrong controller filter processing because of faulty regular expression generation #1907
  • Toolbar not supporting IE11 (realXHR.responseURL) #1905
  • Validation Always Print Error Message #1903
  • Using soft deletes can lead to mysql ambiguous exception #1881
  • Error when running php spark serve (spaces in folder names) #1880
  • Class 'CodeIgniter\Filters\DebugToolbar' not found #1871
  • Should unmatched cache() return null? #1870
  • Class 'CodeIgniter\Test\CIUnitTestCase' not found when testing in Appstarter project #1864
  • Public methods in system/Controller #1849
  • Controller in folder - method not accessible unless I set a route on Linux - Windows OK #1841
  • Routing to hardcoded ids does not work #1838
  • Form Validation: required_with and required_without implementations #1837
  • Events.php on method $callable parameter accepts only callable #1835
  • Controller response property overriding by ControllerResponse inPHPUnit #1834
  • ValidationInterface run method $data attribute should be nullable #1833
  • Fail to render view in a view with layout #1826
  • UploadedFile::move and File::move have different implementation #1825
  • Missing documentation: parser is not able to handle nested loops #1821
  • Is hashId function missing? #1801
  • Parser is not able to handle nested loops #1799
  • Routing rules order [suspended / probably csrf] #1798
  • I need to call session() if I want to be able to use old() in the forms. #1795
  • Output getting buffered when running via command line #1792
  • Wrong CodeIgniter::handleRequest method definition #1786
  • File::move is not moving file #1785
  • Question about date helper #1783
  • Intention or bug? File::move does not update path #1782
  • Small typos in documentation section "Taking Advantage of Spl" #1781
  • Documentation mistake: Model::save does not return a boolean only #1780
  • Toolbar::run produces incompatible data for json_encode #1779
  • History::setFiles may crash when reading empty file #1778
  • Can't set subquery as WHERE condition. #1775
  • Ignoring 'required' validation rule for inserts. #1773
  • save() method trying to insert instead of update #1770
  • Controller Test / Feature Testing output issues #1767
  • MigrationRunner::version should return "current version string on success" #1766
  • DIRECTORY_SEPARATOR / Different Behavior under Windows #1760
  • HTTP Feature Testing not working #1710
  • alpha4->5 requires to have primary key in every model/table #1706
  • route_to('name'); does not work for other subdomains #1697
  • Router issue - overwriting. #1692
  • Using Memcache as Session Handler cause exception during regenerate. #1676
  • Model's without primary keys get pagination counts wrong #1597
  • Unable set ENVIRONMENT with Spark #1268
  • WIP Improve unit tests #512

Merged pull requests:

v4.0.0-beta.1 (2019-03-01)

Full Changelog

Fixed bugs:

  • Sequential Migrations don't run to the correct version #1666

Closed issues:

  • Back references not working in route #1761
  • setDefaultController not working as expected #1758
  • Spark doesn't work when using devstarter #1748
  • required_with and required_without validation rules #1735
  • validation rule password never match #1728
  • Entities errors #1727
  • Loading namespace helpers doesn't work as expected CI4 alpha5 #1726
  • spark migrate:latest ErrorException alpha5 #1724
  • redirect()->to lost $baseURL config #1721
  • Bug Report: Seeding #1720
  • Spark missing arguments #1718
  • Model required validation rule not working #1717
  • ZendEscaper - duplicate? #1716
  • Why we required form pointed to correct url? #1713
  • Why there is only 1 function in ArrayHelper? Can we introduce more? #1711
  • CodeIgniter\Model::cleanValidationRules() must be of the type array, string given #1707
  • alpha 4->5 query param binding #1705
  • failValidationError($description) #1702
  • Bug : changing viewsDirectory misses errors folder when exception occures #1701
  • Cannot define complex routes , i.e. date #1700
  • lang bug or not? (empty translations) #1698
  • Issue Extend Core Class #1653
  • Turn OFF getMyProperty() method during DB save. #1646
  • Model class crashes when handling complex validation rules #1574
  • Database ForgeTest hiccup #1478
  • SQLLite3 Forge needs better column handling #1255
  • TODO BaseConnection needs better error handling #1254
  • Model Alternative Keys #428

Merged pull requests:

v4.0.0.0-alpha.5 (2019-01-30)

Full Changelog

Implemented enhancements:

  • Cache system should support site-wide prefixes #1659

Fixed bugs:

  • Problem with Database BaseBuilder binds #1226

Closed issues:

  • DB query not working with disabled escaping #1687
  • migrate:refresh ArgumentCountError #1682
  • Do I need to clear old session files manually? #1681
  • Pagination / pager->links() double encodes links #1680
  • Document Method Spoofing for forms. #1668
  • insertBatch with escape=false still escapes values #1667
  • Filters should not be case sensitive #1664
  • RouteCollection::discoverRoutes incomplete #1662
  • Feature request make is_unique - more than one field. #1655
  • Toolbar logs tab - not logging #1651
  • DebugToolbar - too much recursion #1650
  • [documentation] Typing mistake in transaction example #1639
  • Transaction documentation error and/or bug #1638
  • Bug : pagination broken when using 1 as perPage #1628
  • View data not being passed between each call? #1621
  • Composer Installation downloads app and application folder. #1620
  • countAllResults() should respect soft deletes #1617
  • redirect function don't redirect to base_url #1611
  • Memory issue - Toolbar collects every query #1607
  • Pls remove string type in parameter $group at Database::forge #1605
  • SQL JOIN : bad aliasing on join with prefixed db tables #1599
  • Model's update method fails when validation rules exist #1584
  • maybe need to modify session garbage collector section. (FileHandler) #1565
  • Maybe routes has problem. [setTranslateURIDashes] #1564
  • ErrorException Trying to get property 'affected_rows' of non-object #1559
  • UG - typo in Managing Apps #1558
  • Database migration uses wrong database when initialising migration classes #1532
  • Database migration table not correctly created when a non-default database connection is used #1531
  • MYSQL : orderBy() considers CASE statement as a column #1528
  • getCompiledSelect() return query without binds #1526
  • Commit pre-hook misbehaving #1404
  • Lack of proper instruction in documentation for changing Application and System folder name #1366
  • SubQueries (tables from outside of the current model) #1175
  • FileHandler Garbage Collector fails to delete expired session files. #942

Merged pull requests:

v4.0.0-alpha.5 (2018-12-15)

Full Changelog

v4.0.0-alpha.4 (2018-12-15)

Full Changelog

Implemented enhancements:

  • WIP Vagrant and/or Docker support #1452

Closed issues:

  • Custom routing rule not match the User Guide #1609
  • Memory leak - binds not being cleared after find() #1604
  • Soft deletes need parentheses around proceeding query? #1592
  • Cannot use Model first() and update() in table without primary key #1583
  • tried to allocate #1578
  • Database Migrations inconsistent info about sequential type #1577
  • Wrong or not precise documentation of magic __get and __set methods in section Handling Business Logic #1568
  • Entity's fill method is not supporting key mapping #1567
  • Ability to add namespace to FileLocator class #1552
  • Should log file contain plain text database username passwords etc? #1542
  • Issues with redirects - had to use exit to make it work and blank page #1501
  • Use of undefined constant BASEPATH #1439
  • MYSQL : BETWEEN operator loses condition value on JOIN in (:) used #1403
  • The problem in catching exceptions #1274
  • TODO Language needs improved locating #1262
  • Email attachment #1008

Merged pull requests:

v4.0.0-alpha.3 (2018-11-30)

Full Changelog

Implemented enhancements:

  • Events should pass it's arguments by reference #1298
  • Feature request. Small but useful. Entity class. #1176

Fixed bugs:

  • \Config\Database::connect returns unexpected result for custom config values #1533
  • Old() - Seems to have an issue with retrieving array values #1492
  • Language is not merging with modules #1433
  • RedirectResponse does not set cookies #1393
  • ThrottleTest intermittent failure #1382
  • Support replacer functions on validations #1363
  • Filter on route group only attach / #1247
  • TypeError in MemcachedHandler::__construct() #1204
  • Required_without validation rule #1007
  • Division by zero - fresh install #979

Closed issues:

  • need change file_exists to is_file? #1543
  • Docs : some links are broken due to lack of prefix CodeIgniter4 #1537
  • Spelling mistake /wrong function reference in documentation "Handling Business Logic" #1535
  • Sample code in Entity documentation contains useless statement #1534
  • Model events why is there no beforeFind? #1527
  • [Documentation] Bug in code example for "Validating $_POST data" #1520
  • Before filters with sessions break php spark serve #1519
  • Missing documentation for placeholders in validation errors #1503
  • no $baseURL set will be notice "The baseURL value must be set" #1476
  • $field parameter as string at Forge::addField #1474
  • FeatureTestCaseTest still broken #1446
  • Unit test output not captured #1435
  • Response setJSON body <?php{ problem #1430
  • Migrations.classNotFound #1420
  • Controller helper Form validate('groupname') error with rules group #1419
  • Use the update() in BaseBuilder method #1414
  • Spark error #1408
  • Fix class namespacing in the user guide #1401
  • 404 File not found error when running CodeIgniter on local Apache web server and virtual hosts #1391
  • boolean cast in entity and validation error for required, in_list[0,1] #1372
  • guessExtension() #1367
  • insert() doesn't return boolean but CodeIgniter\Database\MySQLi\Result #1365
  • Entity json-array casting not functioning as expected #1359
  • An error occurs in View Class #1358
  • URI Routing bug #1354
  • Query binding - long names with funcs #1353
  • Bug report: Important bug in is_unique with DBGroup different than defined in $defaultGroup #1326
  • Environment Configuration file #1309
  • Can't call run() method with params from migrate:latest #1308
  • TODO ImageMagickHandler needs resizing fixed #1261
  • TODO CURLRequest needs helpers #1259
  • TODO Toolbar needs logging #1258
  • TODO BaseBuilder error handling #1250
  • TODO Database migrations need more flexibility #1249
  • Kint problem, chinese characters #1177
  • CSP + DebugBar #1165
  • The _remap function is wrong in the development (CI_DEBUG) #1137
  • Debug Bar Routes params bug #1104
  • Session expire time refresh by xhr/ajax request. #1074

Merged pull requests:

v4.0.0-alpha.2 (2018-10-26)

Full Changelog

Implemented enhancements:

  • Filter in the router #1315
  • Making Views path changeable #1296

Fixed bugs:

  • Error in user guide for session config #1330
  • Route in the News Tutorial Routes are ERROR all over. #1240
  • Time testing in travis-ci wonky #1229

Closed issues:

  • CLI CommandRunner is trying to instantiate abstract classes #1349
  • redirect()-> problem #1346
  • Question new form validation rule #1332
  • Download Response Not working #1331
  • Incorrect Error Message ? #1328
  • Wrong variable reference #1324
  • Model Pagination: Problem with total rows #1318
  • Should display an exception when minimum PHP version not met. #1307
  • News Tutorial Error on form submit #1301
  • Small Typo Correction #1299
  • Making config variable global as CI3 #1297
  • Config files aren't discovered automatically when using the config() function. #1293
  • News Tutorial post riute still not working #1292
  • Form Validation #1290
  • News Tutorial Routes #1288
  • I want to separate responsibility of Cast from Entity. #1287
  • error 404 in routing with controller in subdirectories #1276
  • TODO Extending helpers #1264
  • TODO MockResponse needs cookies solution #1263
  • TODO url_helper needs fixing #1260
  • TODO FileLocator better path checking #1252
  • TODO FileLocator filename sanitizing #1251
  • BUG in form_hidden with associative array #1244
  • Save entity after selected find results in null data #1234
  • System/Database/Database.php::loadForge returns Connection when using custom DBDriver #1225

Merged pull requests:

v4.0.0-alpha.1 (2018-09-29)

Full Changelog

Implemented enhancements:

  • Parser plugins should be allowed to have non-paired directives #547
  • Modify View Parser to support quoted phrases #537
  • Move Formatting functionality from the API namespace to it's own namespace #451
  • Add method spoofing for forms. #432
  • Add overwrite option to UploadedFile->move() #275
  • Add Download method to Response object. #208
  • Cache/Session fallback to predis/predis composer package if phpredis not available #192
  • View: saveData #181
  • url_helper implementation #157
  • Add true 'prepare' functionality to Queries #131
  • Add :hash placeholder for URI parameters #130
  • [URI] Provide ability for query vars manipulation #119
  • [FilesCollection] Allow getFiles with dot syntax #112
  • Database to fire events #105
  • New Toolbar Collector for Events #84
  • Debug Toolbar Enhancements #83
  • Add indexing functions to Forge #65
  • Refactor DB Backup to stream to file instead of holding in memory #64
  • Add support for foreign keys to the Forge #63
  • Headers must support multiple headers with same name #16
  • Add 'secure' option for Routes #10
  • [Test Helper] assertLogged #9
  • Additional Logger Enhancements #8
  • Implement Content Secure Policy #6
  • Replace our escaper with Zend Escaper #5
  • Redirect Security #4
  • Reverse Routing #3

Fixed bugs:

  • Testing output buffer not closed #1230
  • XML formater xmltoarray indexed array incorrect #577
  • stringify_attributes method MUST escape the values #282
  • base_url() function doesn't work properly when it used on page with uri segments #240
  • mysqli update bug #229
  • database update #201
  • Paginating Multiple Results - user Guides #196
  • 'Filters' Bug #188
  • POST and debugbar #172
  • url_helper functions don't correctly apply $baseURL #155
  • Routes ending in '/' redirect oddly #147
  • Error when trying access URI with Global Function's name #136
  • CLI problem with progress complete's message #135

Closed issues:

  • validation error #1214
  • How to use Controller own constructer? #1208
  • autoload psr4 is not right. #1205
  • multiple rules in validate() for File Upload not working #1201
  • can't use the same model to update, delete and insert record #1193
  • $myModel->find(string "value-of-my-primary-key") #1188
  • Undefined variable: _SESSION in command php spark #1183
  • Typographical error #1179
  • CSP + .kint d(foo) #1174
  • DebugBar -> Server Error 500 #1170
  • NULL in select is escaped (mysqli_sql_exception) #1169
  • Routing for "cli" actions. #1166
  • Create Auto-discovery system #1161
  • Routing wrong default value #1139
  • $session->push gets wrong #1136
  • Toolbar Oldest files delete bug #1135
  • redirect helper : redirectResponse is ignored #1127
  • redirect to route ignore baseurl #1126
  • redirect->route wrong docu or default values #1125
  • #1109 breaks route setup/uri parsing #1114
  • [TESTS] Session tests for php 7.2 #1106
  • set_cookie - not working #1103
  • safe_mailto - not working #1102
  • CLI tool sorting wrong #1099
  • Issues with redirect #1098
  • Can't use validate with regex_match[] #1084
  • problem with redirect() withInput() when validation #1081
  • Redis Handler Fails #1079
  • about cache path #1078
  • validation error #1077
  • #Request. Features for REST server. #1076
  • Database Migrations #1075
  • Codeigniter/Model - Select Database Table Fields #1072
  • New Config helper #1071
  • HTTP\ResponseTest Language Problem #1069
  • CLI Error #1068
  • Entity _options dates #1061
  • class Locale not found when using I18n/Time on xampp localhost #1059
  • Cookie not working #1057
  • Where is class 'MessageFormatter' #1054
  • Is CI 4 ready for production, please? #1051
  • Router 404 #1050
  • Toolbar - memory usage #1049
  • Session saving #1045
  • $Email->initialize($config) not work! #1042
  • Class '\CodeIgniter\Database\postgre\Connection' not found #1038
  • Tutorial controller Pages and file_exists() case sensitivity #1030
  • options base_uri not being based from curlrequest client instantiation #1029
  • Missing method in db result #1022
  • Email Config $fromEmail not work #1021
  • Class 'CodeIgniter\PageNotFoundException' not found #1016
  • Redirect glitch #1013
  • CSRF Error #1012
  • Php serv CLI stopped working #1006
  • Unit testing broken in travis-ci #1003
  • empty php_errors.log file #1001
  • [Help] setVar('body', $view, 'raw') #1000
  • It's blank page and set $baseURL #999
  • Unable to use another controller'method in one controller? #997
  • CodeIgniter\Session\Handlers\FileHandler Class and writable\session Directory not found while using .env #994
  • route_to() function not work if greater than 3 parameters. #992
  • Redirect Back #991
  • helper method should accept more than one filename.... #987
  • New Feature Request - Sub queries using query builder class #985
  • MySQL join / missing value for field which was used in join. #983
  • Documentation - Session Library - session()->start() #982
  • Cache with handler file woking incorrect on windown os #978
  • Formatter for: "content-type: application/json" #977
  • route_to function working incorrect #975
  • Getters and Setters in the Model #974
  • About Replacing Core Classes! #973
  • CodeIgniter 4 should use PSR-2 #972
  • Model Validations and Insert/Update Batchs #967
  • function old() not allow input name type array #966
  • test #963
  • namespace error in centos7 #959
  • Session cannot be saved #958
  • Model calling Query Builder replace() #957
  • gzuncompress(): data error #956
  • Additional space in a parameter which is a string (mysql) #955
  • Pager with search queries #950
  • IncomingRequest getUserAgent problem only object #948
  • url_helper current_url https fix. #947
  • Validation "matches" rule is not getting the label from the corresponding field #946
  • no luck setting up user_guide #944
  • mysqli_sql_exception: No such file or directory #943
  • Major Security Flaw - Database Credentials get leaked. #935
  • Debug Toolbar is not loaded when CSP is enabled #934
  • This is a problem with frequent operations #933
  • Redirects not working #931
  • Model fillPlaceholders() rule reference #930
  • session in not working on database #925
  • Twig #919
  • setDefaultNamespace Sub directories #917
  • Load language issue #913
  • Find a bug ,CSRFVerify #912
  • validation form_error() #911
  • About Filters matching rules #908
  • Prepared Query Update problem #904
  • Model::first() ambiguous id error #903
  • Add Model beforeDelete property #902
  • passing form_validation() errors with redirect() to any view | and include methods for post only by using [ HTTP verbs in routes ] and Resource route #900
  • Database failover error on postgresql #899
  • valid_email validation error #898
  • Multi language ( on same page ) support #891
  • About environnement error_reporting #889
  • Subfolders for lang() #887
  • Urgent issues #875
  • remark #871
  • Bug fix mysqli transaction function call #870
  • Debugbar SSL request javascript problem #867
  • Backslashes being escaped in where conditions. #866
  • Model::delete method #865
  • about SessionHandlerInterface error #864
  • Respond Error Pages by Content-Type #863
  • When codeigniter 4 will be released ? #860
  • Catch in Controllers/Checks.php #859
  • View render function LFI(local arbitray file include) issue #857
  • Suggestion regarding codeigniter 4 #856
  • Problem with using Entity class (Could not execute App\Entities::__construct()) #855
  • Config Unexpectedly Being Overwritten by $_ENV variable #853
  • Use PHP 7.0 or 7.1 typehints? #847
  • There is something wrong with ViewTest::testRenderScrapsDataByDefault #846
  • Session in filter #840
  • Moved uploaded files doesn't retain new filename. #839
  • Unable to use like in where? #838
  • Status of the version #837
  • when set cache to file, when get a error #836
  • Bug toolbar #834
  • Table name can not use the alias #831
  • Validation - permit_empty #830
  • Unable to install Codeigniter using composer #829
  • Throttler usage #827
  • Display Label on Form Validation #826
  • Question about Filters #824
  • uri->getHost() #815
  • Error changing databases CodeIgniter\Database\MySQLi\Connection::dbSelect() #813
  • Create a skeleton system for codeigniter #806
  • Feature - CLI Prompt with Validation #800
  • Routing problem /sth-abc->App:sth/foo (ok) and /sth/abc->App:sth/foo (nok) #799
  • Update with delete value #796
  • redirect()->to() is changing value of the base64 parameter #790
  • View Parser escaping data even if passed 'raw' as context in setData() #788
  • Cant instantiate Parser Directly. #787
  • about redis error #783
  • Validation issue and routing issue #782
  • Query binding stopped working #781
  • Entity exception in line 270 and 143 (current version). #780
  • about Error Handling #778
  • $this->CI->request->getIPAddress() protected #776
  • How do you access the $this bound data of the controller in the view? Ci3 is OK, ci4 doesn't seem to work #775
  • I wish I could call the $this of the controller in the business model. What's the solution? #774
  • Ignore_value should be the value of ID, how do I get it? #772
  • Can you increase the function of unique values in the test database? #771
  • about where(null) #770
  • redirect()->to() problem with output buffering #769
  • Class 'App\Models\NewsModel' not found #766
  • Undefined property: Config\App::$errorViewPath #765
  • Zend/Escaper too big ,its not necessary #764
  • .htaccess on php7.0.12 nts not work. #763
  • DebugBar Routes Collector throws ErrorException when optional parameter is not passed to controller #762
  • Debug View change page structure #761
  • Debug Tool: Show view filepath #758
  • PHPCBF - CodeIgniter4-Standard #757
  • about errorViewPath #745
  • Combine Composer with Install #744
  • I have multiple applications. How can I share helpers and Class Map in multiple applications? #742
  • I have multiple applications. How can I share helpers and Class Map in multiple applications? #741
  • When can the fourth version be released, too much #738
  • about Sub-directories #737
  • About 【Use Config\Services as CodeIgniter\Services】 #735
  • Mysqli Driver doesn't throw sql level exceptions / error #734
  • LogicException #403 - CSRF #733
  • User guide for ci4 is not responsive on mobile.(screen width less then 769px) #730
  • Composer intall, as described in documentation, points to different github repository(!) #726
  • Fatal error when trying to run using PHP built in server #725
  • Passing array as argument in Parser Plugin not working #724
  • $request->uri->getSegment(); return error #722
  • Double quotation in getFieldData(); #721
  • Should Model class implement the magic setter/getter methods for protected properties? #720
  • Forge class trying to create UNSIGNED integer fields in Postgresql #719
  • Tests Failing #717
  • Form validation not working when Passing Empty array [ ] #715
  • Redirects to wrong incomplete URL #710
  • pg_escape_literal() expects parameter 1 to be resource, boolean given #709
  • Separate DebugToolbar from CI_DEBUG #707
  • common.php #706
  • Parser::parsePair fails if template contains a $ sign #705
  • view parser throws InvalidArgumentException #704
  • Auto redirect to root folder #703
  • ErrorException #1 htmlspecialchars() expects parameter 1 to be string #702
  • Support for Labels in Validation #696
  • Why is system/bootstrap.php lowercase? #695
  • To much escaping in where #691
  • session in DB not working #690
  • imagecopyresampled(): supplied resource is not a valid Image resource #689
  • Postgres json column search error #680
  • multiple File upload issue #679
  • Postgres Json type error on save #677
  • show strange chracters in kint.php inside system/ThirdParty folder. #676
  • Need Parser plugin for validation errors. #675
  • Fatal error: Cannot use Config\Services as Services #674
  • Routing issue - bad args in function call. #672
  • Entity Concerns #662
  • Undefined method CLIRequest::isSecure() #656
  • PREG_QUOTE and SQL String Binding #655
  • Discussions on Pagination hasNext() and hasPrevious() #651
  • Feature requested- Auth and Template Engine #647
  • route_to doesn't work for post routes #642
  • CURL response header parsing (100-continue) #638
  • Q: Support of array notations is not longer supported? #627
  • Formvalidation not skip validation rules if field not required and field data empty #614
  • Route naming and Groups #612
  • Image resizing issue #610
  • Too much escaping negative int (int < 0) #606
  • Problem with Sth3Model loading from Sth2Model when Sth3Model is in subdiretory (Subdir1) #605
  • I'm not sure but captcha seems currently unavailable. Would it be included in ci4? #604
  • Issue with UploadFile [tempName == name/originalName] ? #602
  • Command Line Seeding Error #601
  • form_open_multipart('', [], $hidden) #598
  • Minor issue with docs - form helper (there is no html_escape function) - shoud be esc #595
  • $session->destroy() and $session->stop() do not work? #592
  • file upload issue #591
  • \IncomingRequest method getFiles() - Should really return only arrays? #590
  • Third argument '$param' missing in validation getErrorMessage #589
  • Error on Postgre insertID #587
  • \InputRequest $request->getFiles() doesn't return FileCollection instance #586
  • Documentation out of date? discoverLocal() #581
  • Storing data #580
  • Propose Moving Model::classToArray() method to Entity class as public method #579
  • camelize helper function incorrect #576
  • helper function uses include instead of include_once #575
  • system/Validation/Views/list.php fix #574
  • [FEATURE] Model Class: updateWhere() #572
  • Model Order #571
  • Minor thing with View file not found exception... #570
  • Error: redirect() - ltrim() expects parameter 1 to be string, object given #568
  • Tutorial is Wrong #562
  • Model Hooks/Events Suggestion #557
  • Initialize on Model __construct #556
  • Event trigger "pre_system" not found #555
  • Validation Issues #550
  • Model Entity suggestion #549
  • CodeIgniter\Files\File() and FileNotFoundException issue with creating new files #548
  • override core files #546
  • CodeIgniter\Format\JSONFormatter needs a look. #544
  • getenv non covered system method #543
  • Couldn't manage without index.php #541
  • Debug bar: Uncaught ErrorException: str_repeat(): Second argument has to be greater than or equal to 0 #538
  • Create localization filters for View Parser to aid in formatting numbers #536
  • Create lang plugin for the View Parser #535
  • Minor: Debug bar showing htmlentities (<strong>) #531
  • Autoloading not functional with custom namespaces outside application dir #529
  • where i extends Controller, and rewrite __construct, get error #527
  • Debug/ImageException.php failed to open stream: No such file or directory #525
  • Superglobals reset #524
  • Bring ENV definition back out to the index file. #519
  • Exception issue #517
  • Port Zip library from CI3 #505
  • Port Encryption library from CI3 #504
  • Port SQLite database driver from CI3 #502
  • A template engine suggession in this phase #500
  • __set in \App\Entities\Sample doesnt works #499
  • Router rule: (:alphanum) doesn't work #498
  • Undefined index: host #497
  • Unreasonable default parameter #482
  • Model issues #479
  • Route Blocking #474
  • Class 'CodeIgniter\Hooks\Hooks' not found #473
  • Work with entities and validation bug #472
  • route bug or not? #470
  • serve.php option --host no effect on line 37 #469
  • File class should stand on its own #468
  • Database can't save connect instances because var "$group" default is NULL #466
  • redirect() issue #465
  • Join not working in Query Builder #464
  • If the controller’s method's parameter has a default value , the program will show 500 error #461
  • Wrong ROOTPATH on console #460
  • Rename "public" Folder Not Working #453
  • Environment File #452
  • Currency Localisation Not Working #448
  • session getFlashdata() is not removing the flash data #446
  • CURLRequest: HTTPHEADER and POSTFIELDS #445
  • Language Line Prepend Recommendation #443
  • Debug Toolbar Array Post Data #442
  • Migration File & Class Name Issues #437
  • Validation Rule Constants #436
  • CURLRequest: Only variables should be passed by reference #434
  • CLI new commands #433
  • issue in phpunit #429
  • Model Class To Array Does Not Use Get Magic Method Or Allowed Fields Property #427
  • Response 404 not same satus get it #425
  • Response Trait Fail Server Error Method #424
  • Validation Required Rule Only Accepts Arrays or Strings #423
  • CLI with parameters is not working #422
  • API Response Trait :: failValidationError() Status Code 422 #420
  • Validation Get & Set Rule Group #419
  • One-Off Validation for a Single Value #418
  • Language File Array Support #414
  • Pagination: How to trans string param when using $pager->links()? #413
  • Validation Exceptions #412
  • Incorrect .htaccess #410
  • Call to a member function getResult() on boolean #409
  • Writable directory question #407
  • Paginate Class #406
  • Base URL Not Working With HTTPS #396
  • How to current page detailed information on router or etc? #393
  • timer long time getElapsedTime problem #390
  • Problem with system bootstrap file needs to be fixed! #389
  • redirect reverseRoute problem #387
  • Hooks::on not working (it was working some time ago) #383
  • disable coveralls auto comment on pull request #382
  • phpunit don't work (fatal error) on PHP 7.0.0 #373
  • session id validation when using php7.1 #371
  • travis test coverage report service #370
  • The efficiency of 'insertBatch' function #368
  • Run phpunit with --coverage-text/html got Error: Undefined variable: matchIP #363
  • Extending Core Classes #358
  • Validation field name issue? #356
  • Old Cache-Control header tag remove? #355
  • $this->request->getPost() // Subkey not included data #353
  • Routes static parameter problem not found page #352
  • bug-form_open_multipart #345
  • Recently ci4 everything goes well? I look ci the space named #336
  • Request setBody not working #332
  • HTTP/URI, CreateURIString yield unexpected result (http:/// instead of http://) #331
  • session class: inconsistency on get() between document and code #330
  • Model.php Return Type Object causes Error when Saving. (Fixed with this modification) #329
  • a bug about set() #325
  • google map in Mysqli Could be a Mistake #324
  • Modules Controllers sub-directory problem #322
  • Post action after Toolbar -> Vars -> Headers Content-Type 2 lines #321
  • Database builder->table() connection reference problem #320
  • RedisHandler, Session regenerate id problem #318
  • view_cell optional variables array_key_exists null fix. #317
  • sessionDriver Database not available #315
  • Add support for Content-MD5 headers #314
  • Scalar type declaration 'string' must be unqualified #312
  • Now ci4 product development can be used? Or how long before they can be released? Very much looking forward #311
  • Sessions in Debug Bar Could be a Mistake #310
  • Should namespaces be used or fully written at method heads #309
  • More filtering issues with Query #306
  • Too much escaping in DB? #302
  • Error Cell caching #297
  • A suggestion for debug exceptions layout #295
  • getSharedInstance doesn't work on costum services #294
  • Separated services default with trait #292
  • HTML-Purifier #291
  • Implement native ORM #289
  • Igniter 4 services #287
  • Error Documentation - Tutorial #286
  • Request is doing the filter_var even if value is not in the $_REQUEST array #285
  • controller routing #284
  • URI Routing issues #278
  • Email Library #276
  • sql error #273
  • DB Needs Transactions implemented. #268
  • Error Call to undefined method CodeIgniter\Database\MySQLi\Connection::close() #267
  • Application/ThirdParty folder necessity #265
  • ErrorException when Connecting to Multiple Databases #255
  • Toolbar.php :: ErrorException: Array to string conversion #254
  • The Hooks feature does not work #248
  • $baseUrl problem with Router #238
  • File upload bugs #236
  • standardize comments #234
  • 3.1.0 Email Library Corrupting PDF Attachments #220
  • Error DotEnv.php on line 121 #216
  • Typography Helper #214
  • Security Helper #213
  • Number Helper #212
  • Text Helper #211
  • Inflector Helper #210
  • HTML Helper #209
  • FileSystem "Helper" #207
  • Date Helper #206
  • Cookie Helper #205
  • Missing {memory_usage} ? #197
  • Exception or disable toolbar for specific URI #195
  • Config Settings Usability #186
  • Binders #185
  • Mess Detector rules #184
  • Coding Standards Fixer rules #183
  • Code Sniffer Rules #182
  • Placing view template outside of the 'Views' dir when using view() #180
  • Controller return output instead of echo view #179
  • Honeypot Filter #176
  • Form Helper #174
  • ILIKE-based portion of the query for PostgreSQL #173
  • “&get_instance()” in the Ci3 how to use it? #166
  • system/Database/BaseConnection.php Change in getFieldNames() method #164
  • Error in session FileHandler and BaseHandler #152
  • No listFields() method in Postgre connection #151
  • Controller Filters #150
  • insert bug #149
  • Router striping real dirpath from the urls. #148
  • Problem throw error for default controller #146
  • Routing issues. #145
  • Pagination Library #142
  • [i18n] Localization In Core #141
  • Language #140
  • Parser #139
  • Application directory is missing the Helpers folder #133
  • HTTP/Request.php Error #132
  • Public properties issue? #124
  • ci4 support websocket it? #121
  • View Cells #116
  • Cache Engine #115
  • Image Class #114
  • Uploader Class #113
  • API Response Trait #86
  • phpDocumentor bug #85
  • Reserved method name #76
  • Provide Throttler Filter #75
  • Ensure docs are updated for current code. #72
  • Writing Testing Docs #71
  • Update Tutorial #70
  • Review Contribution Guidelines #69
  • Database Connection setDatabase() and getVersion() methods #68
  • BaseConfig getEnvValue type juggling #67
  • Migrations should track history per db group. #66
  • Allow passing custom config values to Config\Database::connect() #62
  • SessionInterface: unset() vs remove() #60
  • Remove Query Builder caching #59
  • Why is $getShared = false the default? #55
  • Why IncomingRequest has setCookie()? #52
  • AutoRoute and method arguments #45
  • Rename the loader class #39
  • exit() prevents from testing #31
  • getHeaders #27
  • SYSDIR #25
  • Coding style checker #21
  • Test folder structure #20
  • Namespace for test case classes #17
  • Missing protocolVersion in response header #15
  • Problem with Code Coverage Reporting #13
  • Class 'Config\App' not found #12
  • Can't get Code Coverage #7
  • APPPATH, SYSPATH and similar constants. Rename? #2

Merged pull requests:

* This Changelog was automatically generated by github_changelog_generator