All Versions
25
Latest Version
Avg Release Cycle
47 days
Latest Release
43 days ago

Changelog History
Page 1

  • v4.1.4 Changes

    September 06, 2021

    ๐Ÿš€ This release focuses on code style. All changes (except those noted below) are cosmetic to bring the code in line with the new CodeIgniter Coding Standard (based on PSR-12).

    Note: Full changelog forthcoming.

  • v4.1.3 Changes

    June 06, 2021

    Full Changelog

    ๐Ÿ›  Fixed bugs:

    • ๐Ÿ› Bug: Error using SQLITE3 strftime in CodeIgniter 4.1.2 #4760
    • ๐Ÿ› Bug: Caching something through cron, is not accessible in the web application #4751
    • ๐Ÿ› Bug: SQLite Drop Column #4746
    • ๐Ÿ› Bug: CURL Class - BaseURI options notworking #4713
    • ๐Ÿ› Bug: autorouting #4711
    • ๐Ÿ› Bug: curlrequest not using baseURI on localhost #4707
    • ๐Ÿ› Bug: cli not working with cron #4699

    Closed issues:

    • ๐Ÿ› Bug: Class 'Locale' not found #4775
    • ๐Ÿ› Bug: deprecated notice on CodeIgniter\HTTP\RequestInterface::getMethod() #4717
    • ๐Ÿ‘ Allow to join models between primary keys and foreign keys #4714
    • DateTime::__construct(): Failed to parse time string () at position 0 (๏ฟฝ): Unexpected character #4708
    • ๐Ÿ› Bug: Query Builder breaks with SQL function LENGTH() and column name "row" #4687

    ๐Ÿ”€ Merged pull requests:

  • v4.1.2 Changes

    May 17, 2021

    Full Changelog

    Implemented enhancements:

    • ๐Ÿ†• New HTTP classes, Cookie and CookieStore, for abstracting web cookies.
    • ๐Ÿ†• New assertRedirectTo() assertion available for HTTP tests.
    • ๐Ÿ†• New logger handler, ErrorlogHandler, that writes to error_log().
    • Entity. Added custom type casting functionality.
    • ๐Ÿ†• New option in routing. The priority option lower the priority of specific route processing.
    • The Autoloader class can now load files which do not contain PHP classes. The list of non-class files will be listed in the $files property of Config\Autoload class.

    ๐Ÿ—„ Deprecations:

    • ๐Ÿ—„ Deprecated Codeigniter\View\View::$currentSection property.
    • ๐Ÿ—„ Language strings and exceptions on invalid cookie samesite are deprecated for the CookieException's own exception message.
    • ๐Ÿ—„ Deprecated CodeIgniter\Entity in favor of CodeIgniter\Entity\Entity
    • ๐Ÿ—„ Deprecated cookie-related properties of Response in order to use the Cookie class.
    • ๐Ÿ”’ Deprecated cookie-related properties of Security in order to use the Cookie class.
    • ๐Ÿ—„ Deprecated cookie-related properties of Session in order to use the Cookie class.
    • ๐Ÿ”’ Deprecated Security::isExpired() to use the Cookie's internal expires status.
    • โœ… Deprecated CIDatabaseTestCase to use the DatabaseTestTrait instead.
    • โœ… Deprecated FeatureTestCase to use the FeatureTestTrait instead.
    • โœ… Deprecated ControllerTester to use the ControllerTestTrait instead.
    • โœ… Consolidated and deprecated ControllerResponse and FeatureResponse in favor of TestResponse.
    • ๐Ÿ—„ Deprecated Time::instance(), use Time::createFromInstance() instead (now accepts DateTimeInterface).
    • ๐Ÿšš Deprecated IncomingRequest::removeRelativeDirectory(), use URI::removeDotSegments() instead
    • ๐Ÿ—„ Deprecated \API\ResponseTrait::failValidationError to use \API\ResponseTrait::failValidationErrors instead

    ๐Ÿ›  Fixed bugs:

    • ๐Ÿ› Bug: NULL Fields definition not working for MSQLi Forge in Migration due property $_null and $null names difference #4693
    • ๐Ÿ› Bug: Missing Cookie Config #4619
    • ๐Ÿ› Bug: #4610
    • ๐Ÿ› Bug: Customized Validation language does not take effect #4597
    • ๐Ÿ› Bug: colon issue in query binding #4595
    • ๐Ÿ› Bug: set_checkbox() default value not working #4582
    • ๐Ÿ› Bug: Request & Response objects stored multiple times #4580
    • ๐Ÿ› Bug: Class information on output is missing during migrate:rollback command #4579
    • ๐Ÿ› Bug: Cookie path replaced with system's PATH env variable #4559
    • ๐Ÿ› Bug: Validation::withRequest() method does not receive data. #4552
    • esc and nl2br combo gives nasty HTML error output #4533
    • ๐Ÿ› Bug: typo error when creating a model using php spark make:model #4525
    • Bug: if_exist not working with ".*" notation #4521
    • ๐Ÿ› Bug: Query::matchSimpleBinds index problem only toolbar. #4518
    • ๐Ÿ› Bug: Unable to use debugger toolbar on a live server #4516
    • Missing config options and config options repetition #4504
    • ๐Ÿ› Bug: db:create command should create database even database not exists yet, and defined in .env #4498
    • ๐Ÿ› Bug: Differences in file names created with CLI command #4495
    • ๐Ÿ› Bug: Session removeTempdata() method not accepting arrays. #4490
    • ๐Ÿ› Bug: Session remove() method not removing tempdata sessions. #4489
    • ๐Ÿ› Bug: Session getFlashdata() not support for dot notation. #4488
    • ๐Ÿ› Bug: New Service replacement fails at service provider precedence on core factory implementations #4483
    • ๐Ÿ› Bug: Filter is not work ! #4482
    • ๐Ÿ› Bug: PHPStorm anlysis fault #4474
    • ๐Ÿ› Bug: apache mod_userdir causes weird URL segment duplication #4471
    • Postgre Forge doesn't use schema in creating tables #4469
    • ๐Ÿ› Bug: UG QueryBuilder::from() wrong SQL example. #4464
    • ๐Ÿ› Bug: results on getX() not equal #4452
    • ๐Ÿ› Bug: Queries with LOWER( throwing errors #4443
    • ๐Ÿ› Bug: RouteCollection::getHTTPVerb() can return null #4435
    • ๐Ÿ› Bug: can't run spark migrate on CI server #4428
    • ๐Ÿ› Bug: URI Routing Placeholders #4421
    • ๐Ÿ› Bug: Third Flags needs default #4411
    • ๐Ÿ› Bug: another Flags needs default #4410
    • ๐Ÿ› Bug: Flags needs default value #4409
    • ๐Ÿ› Bug: log_message passed object #4407
    • ๐Ÿ› Bug: Model creation error #4393
    • ๐Ÿ› Bug: If the file name contains "app", "php spark make: migration" will not create it successfully. #4383
    • ๐Ÿ› Bug: IncomingRequest.php getVar() #4381
    • ๐Ÿ› Bug: Minimum PHP Version Discrepancy #4361
    • ๐Ÿ› Bug: insertBatch generates an incorrect SQL query if the fields differ only in number at the end #4345
    • ๐Ÿ› Bug: Database/Live tests fail #4336
    • ๐Ÿ› Bug: red line on model by setPrefix & prefixTable #4329
    • ๐Ÿ› Bug: $model->errors() produce output when no error #4323
    • ๐Ÿ› Bug: Can't Rewrite System Validation Messages #4318
    • ๐Ÿ› Bug: "useSoftDelete" for model files generated by phpspark #4316
    • ๐Ÿ› Bug: require the unused namespace #4309
    • ๐Ÿ› Bug: FeatureTest cannot assert Status(404) #4306
    • ๐Ÿ› Bug: BaseBuilder->_insert #4302
    • ๐Ÿ› Bug: previous_url() contains current URL after reloading a page. #4299
    • ๐Ÿ› Bug: Cannot add route to controller in filename with dash/hyphen #4294
    • ๐Ÿ› Bug: FeatureTest dies when throws RedirectException/cached page #4288
    • ๐Ÿ› Bug: /test.php show home page #4263
    • ๐Ÿ› Bug: Fabricator::fake() function is breaking when it returns an array #4261
    • ๐Ÿ› Bug: Session issue with CI Environment set to Testing (CI4) #4248
    • ๐Ÿ› Bug: Wrong HTML code in output of "form_input" helper function #4235
    • ๐Ÿ‘‰ make:scaffold input information is missing #4230
    • ๐Ÿ› Bug: CodeIgniter 4.1.1 - csrf token is always regenerated #4224
    • ๐Ÿ› Bug: getFileMultiple expects an "0" index but string is given #4221
    • ๐Ÿ› Bug: cannot resolve Services::xxx() #4220
    • Bug: tfoot_open / tfoot_close have no default when using custom table template #4219
    • ๐Ÿ› Bug: Spark PHP version #4213
    • ๐Ÿ› Bug: Soft deletes and model validation when unique #4162
    • ๐Ÿ› Bug: Debug Toolbar - Memory Leak - Allocation Exception #4137
    • current_url() global method returning URLs without the index.php part. #4116
    • ๐Ÿ› Bug: appstarter HealthTest::testBaseUrlHasBeenSet fails #3977
    • ๐Ÿ› Bug: Time::createFromTimestamp() uses default timezone, not UTC for timestamp #3951
    • ๐Ÿ› Bug: Unexpected filter behavior #3874
    • ๐Ÿ› Bug: Double initializing of class #3855
    • ๐Ÿ› Bug: Registrars take priority over .env #3845
    • ๐Ÿ› Bug: SQLite3 NOT NULL prevents inserts #3599
    • ๐Ÿ› Bug: Model doesn't reset errors in FeatureTestCase #3578
    • ๐Ÿ› Bug: Problem in "/system/Database/Query.php" function "compileBinds()" #3566
    • ๐Ÿ› Bug: Exceptions cause risky Feature Tests #3114
    • ๐Ÿ› Bug: current_url() loses subdomain #3004

    Closed issues:

    • mysqli_sql_exception #2002 #4640
    • ๐Ÿ‘ป intl - Name missing exception #4636
    • โšก๏ธ HUGE BUG: update() function updates all records if id is empty #4617
    • ๐Ÿ› Bug: Validation rule "matches" doesn't work #4615
    • ๐Ÿ› Bug: chmod 777 writable/cache fixed codeignitor install for me #4598
    • Model->where method does not exist #4583
    • Transactions between two databases #4578
    • Bug: Mysql connection issue with MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT #4558
    • ๐Ÿš€ Release cycle #4526
    • Call to a member function setContentType() on null - Responsetrait #4524
    • ๐Ÿ› Bug: mock single_service #4515
    • ๐Ÿ› Bug: failed to open stream #4514
    • Array Validation Fails #4510
    • ๐Ÿ› Bug: return $this->failValidationError($validation->getErrors()) Has Invalid Signature #4506
    • ๐Ÿ› Bug: Ok The Model ERRORS came right back with the newest build again! #4491
    • ๐Ÿ› Bug: Composer install loads require-dev when I require another package #4477
    • Logger #4460
    • ๐Ÿ› Bug: Improve creation of scaffolds with the CLI #4441
    • โœ… Request: Feature Test Optimization #4438
    • request.getVar not populated with GET parameters | unexpected behavior #4418
    • 0๏ธโƒฃ Running via CLI - Only Default Controller works #4415
    • ๐Ÿ“œ Parser content typehint [strict_types=1] #4412
    • Toolbar::setFiles() requires int [strict_types=1] #4408
    • ๐Ÿ”‹ FeatureTest currently supports file testing? #4405
    • ๐Ÿ› Bug: set404Override now working in group rotes #4400
    • Dynamic URL #4394
    • ErrorException preg_replace_callback(): Unknown modifier '{' SYSTEMPATH/View/Parser.php at line 584 #4367
    • ๐Ÿ”‹ Feature: In HTTP Feature Testing, delivering in body in application/json format #4362
    • โœ… [Dev] Database Live Tests should depart from using deprecated CIDatabaseTestCase #4351
    • ๐Ÿ› Bug: Migration in module (different namespace) do not find migrations #4348
    • ๐Ÿ› Bug: getVar does not look at $_SESSION as documentation suggests #4284
    • QBSelect, QBFrom, other properties cannot be accessed, modified from the model. #4255
    • Dev: Restrictions on trait "ResponseTrait" #4238
    • ๐Ÿ‘ ResponseTrait trait > Can the description support array? #4237
    • ๐Ÿ”‹ Feature: add old data in afterUpdate model event #4234
    • Dev: #4233
    • โœ… Cache unable to write to /var/www/html/ci4test/writable/cache/ #4227
    • ๐Ÿ“š Documentation: multiple databases setup in the ENV also need to be setup in the database config file #4218
    • ๐Ÿ“š Documentation: $this->request->setLocale() is missing in documentation #4091
    • vars in .env sometimes returns null #3992
    • ๐Ÿ“œ parseRequestURI dose not override globals['server'] ? #3976
    • ๐Ÿ”‹ Feature: Spark header Suppression #3918
    • ๐Ÿ”‹ Feature: AJAX filters don't work #2314
    • Request: Bulk route filters with parameters #2078
    • Need a global way to set config values dynamically #1661
    • ๐Ÿ”‹ Feature Request : support the db config instead of .env while the core is initialzed #1618
    • ๐Ÿ‘ TODO Database BaseConnection needs better connections #1253

    ๐Ÿ”€ Merged pull requests:

  • v4.1.1 Changes

    February 01, 2021

    Full Changelog

    ๐Ÿ›  Fixed bugs:

    • Fixed an issue where .gitattributes was preventing framework downloads
  • v4.1.0 Changes

    January 31, 2021

    Full Changelog

    Implemented enhancements:

  • v4.0.5 Changes

    January 31, 2021

    Full Changelog

    ๐Ÿ—„ Deprecations:

    • ๐Ÿ—„ CodeIgniter\Database\ModelFactory is now deprecated in favor of CodeIgniter\Config\Factories::models()
    • ๐Ÿ—„ CodeIgniter\Config\Config is now deprecated in favor of CodeIgniter\Config\Factories::config()
    • HTTP Layer Refactor: Numerous deprecations have been made towards a transition to a PSR-compliant HTTP layer. [See the User Guide](user_guide_src/source/installation/upgrade_405.rst)

    Mime Type Detection

    • Config\Mimes::guessExtensionFromType now only reverse searches the $mimes array if no extension is proposed (i.e., usually not for uploaded files).
    • The fallback values of UploadedFile->getExtension() and UploadedFile->guessExtension() have been changed. UploadedFile->getExtension() now returns $this->getClientExtension() instead of ''; UploadedFile->guessExtension() now returns '' instead of $this->getClientExtension(). ๐Ÿ”’ These changes increase security when handling uploaded files as the client can no longer force a wrong mime type on the application. However, these might affect how file extensions are detected in your application.

    Implemented enhancements:

    • ๐Ÿ› Bug: controller routing on modules not working #3927
    • CLI: method prompt should accept array validation rules #3766
    • Validation: permit_empty, optional arguments #3670
    • ๐Ÿ‘ php 8 support #3498
    • getRoutesOptions should return the controller and method if available #3445
    • before function in FilterInterface is missing response param #2085
    • ๐Ÿ”‹ Feature Request: Centralized loggedInUser before RC #2055

    ๐Ÿ›  Fixed bugs:

    • ๐Ÿ› Bug: UploadedFile::store() can't return null #4183
    • ๐Ÿ› Bug: BaseBuilder::getCompiledDelete() runs real query #4180
    • ๐Ÿ› Bug: Deprecated: Required parameter $userAgent follows optional parameter $body in /opt/lampp/htdocs/framework-4.0.4/system/HTTP/IncomingRequest.php on line 161 #4172
    • ๐Ÿ› Bug: table template closes tbody after tfoot #4155
    • ๐Ÿ› Bug: delete_cookie() helper not working #4149
    • ๐Ÿ› Bug: Required parameter $userAgent follows optional parameter $body in #4148
    • ๐Ÿ› Bug: spark issue #4144
    • ๐Ÿ› Bug: PostgreSQL driver issues #4142
    • ๐Ÿ› Bug: phpunit coverage report causes Cannot declare class Config\App, because the name is already in use #4114
    • ๐Ÿ› Bug: Wrong file/line in exceptions created by "factory" methods #4110
    • ๐Ÿ› Bug: Request::withMethod() uses deprecated code #4109
    • ๐Ÿ› Bug: View rendering, extracted variables overwrites existed variables(arguments and etc.) #4108
    • ๐Ÿ› Bug: Loss of escape value and data in the model #4087
    • ๐Ÿ› Bug: classes overwrites parameter defaults, phpDoc's defined in interfaces #4086
    • ๐Ÿ› Bug: getRandomName Return file extension .csv when upload docx or xlsx becouse mimetype application/octet-stream are set #4084
    • ๐Ÿ› Bug: Required parameter $from follows optional parameter $verbs #4076
    • ๐Ÿ› Bug: username input form shows root as a default value #4062
    • ๐Ÿ› Bug: Issue with pagination #4045
    • ๐Ÿ› Bug: Model calls builder before initializing #4036
    • ๐Ÿ› Bug: can't run migrations when CI_ENVIRONMENT = testing #4033
    • ๐Ÿ› Bug: can't get environment variable with dot #4026
    • ๐Ÿ› Bug: CodeIgniter model not recognizing custom deletedField in find queries #3999
    • ๐Ÿ› Bug: assertSee() can not assert title tag. #3984
    • ๐Ÿ› Bug: RAR file detected as CSV #3979
    • ๐Ÿ› Bug: Session Initialization via DatabaseHandler #3978
    • ๐Ÿ› Bug: required_with validation rule does not work with arrays #3965
    • ๐Ÿ› Bug: helper cookie not working #3939
    • ๐Ÿ› Bug: Uploaded SRT files are saved as CSV #3921
    • ๐Ÿ› Bug: Pre-commit hook for Phpstan and sniffer stop working after e111f04d74569e413c5aede3ed9bd9fa1ce7dca2 #3920
    • ๐Ÿ› Bug: Documentation Example Leads to Bug #3914
    • ๐Ÿ› Bug: Route filter runs twice #3902
    • ๐Ÿ› Bug: Premature empty check in Model->update function. #3896
    • ๐Ÿ› Bug: Sqldrv problems to insert when change DBPrefix #3881
    • ๐Ÿ› Bug: CI4 won't recognise current namespace for language files #3867
    • Unexpected validation bug #3859
    • ๐Ÿ› Bug: single_service does not set service's arguments correctly #3854
    • ๐Ÿ› Bug: debugbar should not insert code in code tag #3847
    • ๐Ÿ“œ Parser won't properly parse tags that have a similar name #3841
    • ๐Ÿ› Bug: insertBatch not generating createdField #3838
    • ๐Ÿ› Bug: Parser - Replacements happening even if key does not fully matches { value } #3825
    • Bug: Parser preg_replace_callback exception if template has # #3824
    • ๐ŸŒ Translation function 'lang' does not work as described #3822
    • ๐Ÿ› Bug: File rewrite.php is always lost in large-request unhandled error #3818
    • ๐Ÿ› Bug: Model::builder() ignores parameter #3793
    • ๐Ÿ› Bug: Warning no tests found in CodeIgiter\Tests... #3788
    • ๐Ÿ› Bug: Class '\CodeIgniter\Database\pdo\Connection' not found #3785
    • ๐Ÿ› Bug: Composer php spark migrate error #3771
    • ๐Ÿ› Bug: ORDER BY RANDOM ON SQLite3 #3768
    • ๐Ÿ› Bug: CLI: generateDimensions fails with a uncaught exception when exec is disabled #3762
    • ๐Ÿ› Bug: createTable if not exists not working #3757
    • ๐Ÿ› Bug: SQLite drop column corrupts table cache #3752
    • ๐Ÿ› Bug: route filters don't apply for different methods #3733
    • /system/Images/Image.php image()->copy() mkdir #3732
    • ๐Ÿ› Bug: route bug #3731
    • page not redirecting. when i redirecting by calling function #3729
    • ๐Ÿ› Bug: \Config\Services::image()->flatten() #3728
    • ๐Ÿ› Bug: Parser will overwrite the value if the initial variable is same #3726
    • ๐Ÿ› Bug: Validating Json Requests #3719
    • ๐Ÿ› Bug: view caching not work on windows #3711
    • ๐Ÿ› Bug: getRoutesOptions return wrong when I have >2 routes has same name, but different method (HTTPVerb) #3700
    • ๐Ÿ› Bug: Validation with request raw body. #3694
    • Image format webp is not preserve transparent #3690
    • problem: #3686
    • ๐Ÿ“š Documentation Error #3668
    • ๐Ÿ› Bug: BaseBuilder's query is wrong #3659
    • ๐Ÿ› Bug: The lifetime of the CSRF check cookie cannot be set to 0 (Session). #3655
    • ๐Ÿ› Bug: isRedirect does not respond depending on how redirects are set up. #3654
    • ๐Ÿ› Bug: SQL Error when countAllResults, groupBy and DBPrefix used together #3651
    • ๐Ÿ› Bug: helper current_url() return wrong protocol #3648
    • ๐Ÿ› Bug: IncomingRequest::setLocale() #3640
    • ๐Ÿ‘€ CodeIgniter\Database\Exceptions\DatabaseException #8 Unable to connect to the database. #3639
    • ๐Ÿ› Bug: Cannot use view filter on array values #3630
    • ๐Ÿ› Bug: Changelog navigation is not working properly #3625
    • ๐Ÿ› Bug: Routing 404 Override confusion under route group #3623
    • ๐Ÿ› Bug: Target batch not found when running php spark migrate:rollback #3620
    • ๐Ÿ› Bug: getHeaders returns Array with no values #3616
    • Ignore this, was a false report #3611
    • ๐Ÿ› Bug: Incorrect type that fails strict_types=1 #3610
    • The isAJAX method does not exist in filters #3604
    • ๐Ÿ› Bug: current\_url\(\) helper returns wrong url with slash between host and port #3603
    • ๐Ÿ› Bug: Connection ID unknown immediately after connection #3601
    • ๐Ÿ› Bug: Join Query is not working in Library #3600
    • ๐Ÿ› Bug: Database cache not working #3597
    • ๐Ÿ› Bug: Issue in the route, redirect to parent domain, if you put / at the end of url #3595
    • ๐Ÿ› Bug: Segments Also Include The Segments In BASE_URL #3594
    • ๐Ÿ› Bug: Route Filters doesn't restart in FeatureTestCase. #3591
    • ๐Ÿ› Bug: CURL call returns always code 200 in case de server uses HTTP/2 #3586
    • ๐Ÿ› Bug: Language folders inside locale folders NOT Working ! #3582
    • ๐Ÿ› Bug: Uninitialized string offset: 1 CI 4 #3573
    • ๐Ÿ—„ Deprecated assertArraySubset in PHPUnit8 used in FeatureResponse::assertJSONFragment #3562
    • Wrong HTTP status code #3558
    • ๐Ÿ› Bug: Invalid serialization data for DateTime object #3553
    • ๐Ÿ› Bug: Setting session expires parameter via $this->sessionExpiration #3543
    • ๐Ÿ› Bug: Upload file validation, $model->validate return true if failed #3532
    • ๐Ÿ› Bug: Inconsistent behavior of view renderer on Windows and Linux #3529
    • ๐Ÿ› Bug: Add dash to parser plugin regex #3523
    • ๐Ÿ› Bug: When Cronjob run the ip address of the request is 0.0.0.0 #3512
    • ๐Ÿ› Bug: Inconsistency in replace() method #3510
    • ๐Ÿ› Bug: setPath function in UploadedFile.php is writing the index.html wrong #3506
    • ๐Ÿ› Bug: Cannot get session data after server redirecting #3503
    • ๐Ÿ› Bug: Database group defined in .env doesn't work #3497
    • ๐Ÿ› Bug: I cant upload mp4 files #3494
    • ๐Ÿ› Bug: Error message for matches rule doesn't support nested params #3492
    • ๐Ÿ”– CI_VERSION = '4.0.0-beta.4'; session ๆ–‡ไปถfile็ผ“ๅญ˜้—ฎ้ข˜ๅคฑๆ•ˆ้—ฎ้ข˜๏ผ›session_start(): Failed to decode session object. Session has been destroyed #3485
    • ๐Ÿ› Bug: onlyDeleted() conflicts to paginate() #3482
    • ๐Ÿ› Bug: Unable to connect to the database #3477
    • ๐Ÿ› Bug: Argument 1 passed to CodeIgniter\Config\Services::request() must be an instance of Config\App or null, instance of BackEnd\Config\App #3475
    • ๐Ÿ› Bug: Fatal error running #3473
    • ๐Ÿ› Bug: set() doesn't work on DateTime database field types #3471
    • before() Filters that are executed are missing from codeigniter debug toolbar. #3470
    • ๐Ÿ› Bug: Model insert method always insert with current datetime on updatedField #3469
    • ๐Ÿ› Bug: The search function in the documentation is not working #3458
    • ๐Ÿ› Bug: env variable database.default.dsn not working for mysqli #3456
    • ๐Ÿ› Bug: #3453
    • Bug: form_textarea in form_helper does not create specified 'rows' #3452
    • ๐Ÿ› Bug: afterUpdate event return array instead of key value #3450
    • ๐Ÿ‘ท Using Cronjob with php line argument while using Crontab redirects the script and never executes #3444
    • ๐Ÿ› Bug: Support for SameSite cookie setting missing #3442
    • ๐Ÿ› Bug: Validation mime_in SVG files not working correctly #3439
    • ๐Ÿ› Bug: Cannot declare class Config\Paths, because the name is already in use #3434
    • ๐Ÿ› Bug: delete_cookie() helper function not working #3433
    • ๐Ÿ› Bug: insertBatch not working correctly #3432
    • ๐Ÿ”‹ Feature request : CodeIgniter\File with SplFileInfo does not have a method to rewrite parts of the file only to append an CSV style row #3431
    • ๐Ÿ› Bug: SMTP to port 465 should use TLS from the start #3429
    • ๐Ÿ› Bug: Form data and file is not receiving well formed with PUT Method #3417
    • ๐Ÿ› Bug: form_textarea helper row and col defaults not overwriting when defined as $extra #3412
    • Encryption Class does not allow to change digest parameter from SHA512 to SHA256 or others #3404
    • ๐Ÿ› Bug: table.Array in first() ... - and complex primary keys! ;-) #3394
    • ๐Ÿ”ง Error: Email SMTP configured wrong gives error #3390
    • ๐Ÿ› Bug: CodeIgniter\Router\Router hasLocale returns true even if {locale} is absent #3386
    • ๐Ÿ› Bug: Logs Collector isn't collecting logs for Debug Toolbar #3376
    • ๐Ÿ› Bug: Entity's original is not set #3370
    • ๐Ÿ› Bug: warning in Routes.php #3369
    • ๐Ÿ› Bug: Model can not insert Entity #3368
    • ๐Ÿ› Bug: stringify_attributes() looks unfinished. #3363
    • ๐Ÿ› Bug: php spark migrate throws wrongful CodeIgniter\Database\Exceptions\DatabaseException Unable to connect to the database #3359
    • ๐Ÿ› Bug: Image watermark after save.. text not align in center middle when resolution lower and higher. #3356
    • ๐Ÿ› Bug: SQL Lite driver with Builder -> InsertBatch has intermittend lastError reporting issues #3350
    • ๐Ÿ› Bug: isCLI error when calling a controller from a Command Line #3342
    • ๐Ÿ› Bug: missing clear upgrade instructions #3332
    • ๐Ÿ› Bug: API requests with a trailing forward slash #3330
    • ๐Ÿ› Bug: Pager pagination ( page value in url ) #3328
    • ๐Ÿ› Bug: View layout name hierarchy is not displaying correctly on Debugbar Views #3327
    • ๐Ÿ› Bug: php spark migrate on testing environment doesn't work #3309
    • ๐Ÿ› Bug: Empty Entity date attributes receive current timestamp when accessed #3251
    • ๐Ÿ› Bug: no Filter arguments passed #3216
    • ๐Ÿ› Bug: Url Helper have a bug #3180
    • $pager->links() not working inside view layouts #3164
    • ๐Ÿ› Bug: AH01075: Error dispatching request on Basic CI4 #3110
    • ๐Ÿ› Bug: Using assertJSONFragment with respond() in ResponseTrait #3079
    • ๐Ÿ› Bug: Filters 'except' option not removing DebugToolbar comment for view #3002
    • ๐Ÿ› Bug: useSoftDeletes with like function #2380

    Closed issues:

    • ๐Ÿ‘€ Seed Command in document Not found #4154
    • โšก๏ธ I18n/L10n: auto update translations #4151
    • โšก๏ธ Calling update() with an Entity throws an error #4143
    • BaseConfig property issue #4140
    • ๐Ÿ› Bug: #4126
    • ๐Ÿ› Bug: a new installation of codeignitor 4.0.4 show 404 error Sorry! Cannot seem to find the page you were looking for. #4111
    • ๐Ÿ› Bug PHP SPARK MIGRATE #4101
    • Pagination work in local, but error in server #4096
    • updated_at field is filled with the current timestamp when inserting new data along with created_at #4038
    • Config for pager #4030
    • โšก๏ธ setUpdateBatch #4025
    • ๐Ÿšš Empty html-file created when moving uploaded files with $img->move() #4020
    • php spark serve error on php 8 #3980
    • ๐Ÿ› Bug: PHP8 session flush data is not deleted #3974
    • ๐Ÿ—„ PHP8: Deprecate required param after optional #3957
    • Undefined function #3954
    • Missing function locale_set_default(...) in Codeigniter 4 #3953
    • โœ… Language\en\Language.php is only used in testing #3948
    • Bug: locale_set_default causing "Whoops" failure in MacOS PHP 7.3.9 on develop branch #3933
    • Pdo driver not found #3922
    • Mysqli Backup utility? #3906
    • Relationships - Many to many #3885
    • ๐Ÿ› Bug: How can remove Codeinatore default icon #3883
    • ๐Ÿšš How Can remove CodeIgniter4 icon #3882
    • Codeigniter review 2021 #3880
    • url_title doesn't work with decimal number in title #3878
    • ๐Ÿ“š IncomingRequest Class "hasFile" function does not exist as described in the documentation. #3852
    • ๐Ÿ‘ Dynamically changing supported languages #3844
    • ๐Ÿ‘€ CodeIgniter\Database\Exceptions\DatabaseException #8 #3826
    • Blank page show #3812
    • ๐Ÿ› Bug: folder tests not found #3807
    • Typo in the doc: cache_info() #3800
    • only_full_group_by - mysqli_sql_exception #1055 - MySql 5.7.24 #3795
    • โœ… Dev: Split ModelTest #3792
    • The formatMessage function of the Language class works intermittently #3784
    • .htaccess problem with syntax #3778
    • The page does not open correctly:( #3770
    • โช Restore method for CodeIgniter Model. #3767
    • ๐Ÿ› Bug: Model update() only set first array value #3764
    • ๐Ÿ› Bug: CLI: Exception view shows full path #3763
    • ๐Ÿ› Bug: Maximum execution time exceeds while handling IPv6 Reverse Proxy IPs #3760
    • ๐Ÿ“š Fabricators documentation error #3743
    • is\_unique is not considering the db prefix in checking for unique values in db #3741
    • Grouping routes should let me pass additional variables within the closure function #3691
    • cannot find Ftp library. #3679
    • ๐Ÿ‘‰ Make sessions never expire with $config['sess_expiration'] = -1 #3677
    • Migration trouble #3624
    • Files as optional in validation rules #3619
    • $_SERVER should not have .env file info #3615
    • ๐Ÿ› Bug pars xml #3588
    • ๐Ÿ› Bug: When have multi filter class, and "before" function return true๏ผŒother filters after this filter not working #3579
    • ๐Ÿง can not install on linux os #3572
    • ๐Ÿ“š Incorrect grouping function names in documentation #3551
    • ๐Ÿ†• New Edge Browser missing from user agents config #3513
    • Form validation does not have a rule to validate if field value differs from a string #3462
    • โšก๏ธ updateBatch does not accept entities #3451
    • ๐Ÿ‘Œ Support PSR4 #3405
    • CodeIgniter4 is ready to work with PHP 7.4? #3389
    • Using CodeIgniter4 with Oracle Database #3388
    • Can't get Controllers subfolder working #3347
    • Why redirect()->to() doesn't work inside events Model? #3346
    • ๐Ÿ› Bug: requests PUT type without segment redirects to index method instead update method #3343
    • Migrations not working #3317
    • CURL Error htts SSL #3314
    • codeigniter composer global installer #3266
    • ๐Ÿ› Bug: Migrations Deprecated #3195
    • Managed to reproduce this issue. Was uploading an image with jquery.dm-uploader.min.js, and trying to do some image manipulation, but when I got this error: #3174
    • ๐Ÿ‘‰ Make the Model work without auto_increment primary key #3134
    • Call to undefined function CodeIgniter\Debug\current_url() #3106
    • ๐Ÿ› Bug: select() & selectSum() not consistent / aligned with docs #3019
    • โœ‚ Remove /public in URL not working if using localhost #2930
    • The problem is in getting the file sharing by Mime #2732
    • Migration on PostgreSQL failes for tables with foreign keys #2575
    • ๐Ÿ“œ Automatic Entity cast for Parser #2317
    • ๐Ÿ”‹ Feature: Cache Driver - Serialize/Unserialize Objects #2111
    • Model set $escape problem #1929
    • \I18n\Time setTimezone does not work as expected #1807
    • ๐Ÿ— TODO Database utility backup builder #1257
    • Port FTP library from CI3 #506
    • Port MSSql Database driver from CI3 #503

    ๐Ÿ”€ Merged pull requests:

  • v4.0.4 Changes

    July 15, 2020

    Full Changelog

    Implemented enhancements:

    • ๐Ÿ› Bug: incorrect type - system/Database/MYSQLi/Connection.php #2996
    • ๐Ÿ› Bug: CI_DEBUG incorrect type and fails strict validation #2975

    ๐Ÿ›  Fixed bugs:

    • ๐Ÿ› Bug: Fix protocol version for DownloadResponse #3320
    • ๐Ÿ› Bug: Add Honeypot::$container to env file #3318
    • ๐Ÿ› Bug: Add multibyte support on DOMParser::see() #3324
    • ๐Ÿ› Bug: Image width debug-bar has conflict #3323
    • ๐Ÿ› Bug: Setting Encryption Service Key in app/Config/Encyption.php #3297
    • ๐Ÿ› Bug: CodeIgniter\I18n -> Class 'Locale' not found #3294
    • ๐Ÿ› bug cURL - Parse header and Body #3261
    • ๐Ÿ› Bug: Forced HTTPS wrong redirect #3260
    • ๐Ÿ› Bug: #3255
    • โœ… Testing ajax header problems #3246
    • ๐Ÿ› Bug: Url's not working #3245
    • ๐Ÿ“š Missing code formatting for migration block in documentation #3243
    • Hint message in tutorial does not correspond to the example code shown #3242
    • How to call resource route #3239
    • Can't successfully validate CLI::prompt when field param has periods #3233
    • Bug: set_checkbox, set_radio not working default true. #3228
    • ๐Ÿ› Bug: Validation wrong behaviour - Session mixed with internal validator state #3210
    • ๐Ÿ› Bug: CLI: Smell on reading parameters #3205
    • ๐Ÿ› Bug: MySQL Errors are not reported #3204
    • ๐Ÿ› Bug: Error exception layout when its an error inside a view where code can go outside the limits #3199
    • ๐Ÿ› Bug: MessageFormatter argType of "String" isn't valid #3191
    • ๐Ÿ› Bug: pagination not working with segment #3188
    • ๐Ÿ› Bug: is_image validation is vulnerable #3184
    • ๐Ÿ› Bug: model->save() insert/update data #3177
    • ๐Ÿ› Bug: The CLI::color cannot create multicolored strings if ordering of strings is reversed #3173
    • Bug: Missing function locale_set_default(...) #3171
    • Router RegEx not working. #3169
    • ๐Ÿ› Bug: BaseBuilder::insertBatch() has 3 params and not 4 #3158
    • ๐Ÿ› Bug: Issue using image library when original image and resized are the same size #3146
    • ๐Ÿ› Bug: cannot call constructor on controller. #3145
    • ๐Ÿ› Bug: CodeIgniter 4.0.3 Controller will not display pdf files in browser #3144
    • Bug: $request->getVar('test', FILTER_VALIDATE_INT) does not work if the input is an array #3128
    • ๐Ÿ› Bug: A wrong escape on BaseBuilder::set() #3127
    • ๐Ÿ› Bug: Can't override Translations Package Files / Keys #3125
    • ๐Ÿ› Bug: Validation rules max_size #3122
    • ๐Ÿ› Bug: Pagination not working with soft deleted items #3121
    • ๐Ÿ› Bug: SQLite3 database file created in /public folder #3113
    • ๐Ÿ› Bug: RedisHandler does not working on sessionExpiration is zero #3111
    • ๐Ÿ› Bug: Implicit controller methods failing #3105
    • ๐Ÿ› Bug: Custom Validation Error Messages #3097
    • ๐Ÿ› Bug: API\ResponseTrait::respondNoContent return content-type header #3087
    • ๐Ÿ› Bug: Running Feature Tests on multiple endpoints using filters #3085
    • ๐Ÿ› Bug: FeatureResponse::isOk and redirects #3072
    • ๐Ÿ“š Documentation: "First Application" form validating before submitting #3071
    • ๐Ÿ› Bug: Fatal error: Cannot declare class CodeIgniter\Exceptions\PageNotFoundException #3067
    • ๐Ÿ› Bug: Risky feature tests with Controller returns #3063
    • ๐Ÿ› Bug: Documentation news app project #3054
    • ๐Ÿ› Bug: ClassMethod #3050
    • ๐Ÿ› Bug: CodeIgniter\Router\RouteCollection->fillRouteParams() ErrorException on 'from' parameter containing regex pattern with '|' symbol #3048
    • ๐Ÿ› Bug: Database connection #3043
    • ๐Ÿ› Bug: Route redirection not working #3041
    • ๐Ÿ› Bug: Model::getValidationRules() cant handle ::$validationRules if its a string #3039
    • ๐Ÿ› Bug: Body data from curlrequest become unreadable when endpoint return long data #3034
    • ๐Ÿ› Bug: File Validation not validate correctly. #3032
    • ๐Ÿ› Bug: Fatal error when no user-agent is available #3029
    • ๐Ÿ› Bug: Not possible manipulate results of renderSection() on View Layouts #3028
    • ๐Ÿ› Bug: Helpers at non-default locations are not found #3026
    • ๐Ÿ› Bug: Most validation rules enforce requirement of the field #3025
    • ๐Ÿ› Bug: #3021
    • ๐Ÿ› Bug: getPostGet($index) return $_POST if there is no $index in post and get #3020
    • ๐Ÿ› Bug: Multiple File Uploads validation rule "uploaded[inputName]" does not work when the input name is an Array #3018
    • ๐Ÿ› Bug: delete_files() and hidden directories #3015
    • ๐Ÿ› Bug: Model::Insert() does not throw exception when object without data is passed as parameter #2998
    • ๐Ÿ› Bug: Force download #2995
    • ๐Ÿ› Bug: The example of "The Test Classโ€œ is not working in Documets #2993
    • ๐Ÿ› Bug: Difference in behaviour of native DateTime::setTimezone() and CI's Time:setTimezone() #2989
    • ๐Ÿ› Bug: Blank Page on Production Server #2980
    • ๐Ÿ› Bug: Mistake in uri_string() documentation #2972
    • ๐Ÿ› Bug: route_to() does not return relative part of the path #2971
    • ๐Ÿ› Bug: Encrypter->decrypt issue? #2970
    • ๐Ÿ› Bug: form_upload second parameter VALUE is not used in source code #2967
    • ๐Ÿ› Bug: There's no way to change default spark serve port using code #2966
    • ๐Ÿ› Bug: 'method' is an empty string in PATH_INFO causes Unhandled Exception #2965
    • ๐Ÿ› Bug: URI class - working with segments is really strange #2962
    • ๐Ÿ› Bug: Documentation Issue #2960
    • โšก๏ธ Query Builder set update not working correctly #2959
    • Bug: Validation permit_empty does no work together with required_with and required_without #2953
    • ๐Ÿ› Bug: Validation tries to validate inputs even for empty values with no required parameter #2951
    • ๐Ÿ› Bug: Request URI segment is our of range CI 4.0.3 #2949
    • ๐Ÿ› Bug: start migration in manual mode #2942
    • valid_url rule from validation not working correctly same as valid_url|required #2941
    • redirect route when route is more complex #2937
    • set_value does not work with NULL as second parameter #2935
    • ๐Ÿ› Bug: init of $data arrays in controllers #2933
    • ๐Ÿ› Bug: Translation key separated by dot #2932
    • ๐Ÿ› Bug: Model Instantiation #2924
    • Model #2923
    • ๐Ÿ› Bug: CURLRequest baseURI option in user guide #2922
    • ๐Ÿ› Bug: Not bug, but Fix Documentation, please #2920
    • ๐Ÿ› Bug: Postgresql API call delete use ->connID->affected_rows after Model::delete() got error #2918
    • Multiple table query Model first #2885
    • ๐Ÿ› Bug: pager "prev" and "next" links pointing to wrong URIs #2881
    • ๐Ÿ› Bug: Automatic no CLI colors for Windows terminals #2849
    • ๐Ÿ› Bug: $format in ResourceController is ignored #2828
    • ๐Ÿ› Bug: "Type is not supported" in Postgresql POST restful #2812
    • ๐Ÿ› Bug: Cookie Helper and Response class issue #2783
    • ๐Ÿ› Bug: Models, useSoftDeletes not found in findAll #2658
    • ๐Ÿ”‹ Feature: About the SameSite COOKIE RFC changes for PHP > 7.3 #2374

    Closed issues:

    • Language folders inside locale folders #3300
    • Encryption Class - Decrypting: authentication failed #3258
    • form_upload second parameter VALUE was not used in source code, i found a way to do it. #3256
    • erorr line in resize image using fit in visual studio code #3249
    • โœ… Testing withSession() generates an error. #3190
    • Why is getGetPost() returning all data instead of null when index not found? #3187
    • Request setGlobal not works #3186
    • Cannot extend core HTTPException class #3178
    • โž• Add this relationship in model. #3170
    • Execute bootstrapEnvironment() & detectEnvironment() before Services::exceptions() #3138
    • Bag pars array to xml #3092
    • utf-8 slug character doesn't work in url #3089
    • Grammar in comment #3064
    • line 374 in system/Entity.php json_encode add JSON_UNESCAPED_UNICODE #3059
    • ๐Ÿ”— Link to User Guide on README.md #3053
    • How to set private properties in CodeIgniter\Database\BaseResult::getCustomResultObject() #3051
    • url_title not detecting some special characteres #3038
    • Error: No input file specified. #3030
    • Can findAll function in modeling data accept 3rd parameter reset #3024
    • Class 'App\Models\UserModel' not found #3014
    • Image reorient with exif #3006
    • set cookieHTTPOnly not work #2999
    • [Feature request] Slugs Link #2988
    • [Feature request] End processing app #2982
    • Pager should have getTotalResults method function #2954
    • URL rewrite problem #2925
    • ๐ŸŒ Translation file not get correct locale in 4.0.3 #2921
    • Why this route does not work ? #2919
    • Cache redis or memcached #2909
    • Cookie helper not woking #2848
    • ๐Ÿ› Bug: Routing group filter not working on nested or complex routes #2390

    ๐Ÿ”€ Merged pull requests:

  • v4.0.3 Changes

    May 01, 2020

    Full Changelog

    ๐Ÿ›  Fixed bugs:

    • ๐Ÿ› Bug: is_unique validation rule with model->save() fails #2906
    • ๐Ÿ› Bug: Debugging toolbar not showing #2893
    • ๐Ÿ› Bug: database query bug #2890
    • ๐Ÿ› Bug: Routes - missing (:id) #2889
    • ๐Ÿ› Bug: Typo example "Using Named Routes" #2888
    • ๐Ÿ› Bug: I am able to make POST request to a GET route #2880
    • ๐Ÿ› Bug: Argument 1 passed to CodeIgniter\Database\BaseResult::getFirstRow() must be of the type string, null given, called in /system/Model.php on line 383 #2877
    • ๐Ÿ› Bug: Can't override already defined language in pager #2875
    • Installation Problem: Composer installation halts while installing kint-php/kint #2863
    • ๐Ÿ› Bug: composer require codeigniter4/translations without stable version #2862
    • ๐Ÿ› Bug: Method Spoofing Validation #2855
    • ๐Ÿ› Bug: You made it just as impossible to get going as Laravel โ€“ BUMMER! #2850
    • ๐Ÿ› Bug: localised validation messages #2845
    • ๐Ÿ› Bug: Commands discovery in custom namespaces #2840
    • ๐Ÿ› Bug: When the $index parameter of getGetPost or getPostGet is null, you will get an error result #2839
    • ๐Ÿ› Bug: delete_cookie() doesn't work #2836
    • ๐Ÿ› Bug: Model save method not working if PRIMARY KEY is VARCHAR #2835
    • ๐Ÿ› Bug: Alias Filter with Multiple Filter Class Doesn't Work #2831
    • ๐Ÿ› Bug: Kint Config isnt loaded #2830
    • ๐Ÿ› Bug: RouteCollection::resource() doesn't work with grouped rules #2829
    • ๐Ÿ› Bug: $forge Property in Seeder Class Never Initialize #2825
    • ๐Ÿ› Bug: getSegments() returns an array with 2 empty strings when accessing / #2822
    • ๐Ÿ› Bug: Cell Caching in View Cells and SOLVE! #2821
    • ๐Ÿ› Bug: saveData option doesn't work in Views #2818
    • ๐Ÿ› Bug: Validation placeholder not being replaced #2817
    • ๐Ÿ› Bug: Problems with QueryBuilder when run multiple queries one by one #2800
    • ๐Ÿ› Bug: Routing placeholder in "controller"part of route doesn't work #2787
    • ๐Ÿ› Bug: session()->push() Strange behavior #2786
    • ๐Ÿ› Bug: php spark serve #2784
    • ๐Ÿ› Bug: Can't paginate query with group by #2776
    • ๐Ÿ› Bug: negotiateLocale bug in Safari with fr-ca locale #2774
    • ๐Ÿ› Bug: Controller in Sub Directory is not working #2764
    • ๐Ÿ› Bug: rename release By "v" #2763
    • ๐Ÿ› Bug: db query '?' bind is not working when use sql with ':=' operator. #2762
    • ๐Ÿ› Bug: Multiple select validation problem #2757
    • ๐Ÿ› Bug: Official Site is not working #2749
    • ๐Ÿ› Bug: Logger context placeholders {file} and {line} are wrong #2743
    • ๐Ÿ› Bug: Decimal validation fails without leading digit #2740
    • โšก๏ธ Bug: Model insert Created_at and updated_at get when new record added #2737
    • ๐Ÿ› Bug: appendHeader 500 error if header does not exist #2730
    • ๐Ÿ› Bug: codeigniter4 download link 404 resource not found #2727
    • ๐Ÿ› Bug: Logger path property ignored #2725
    • ๐Ÿ› Bug: $this->request->getPost() is empty when json is send by postman #2720
    • ๐Ÿ› Bug: open path /0 at uri got error "Class Home does not exist" on development environment #2716
    • ๐Ÿ› Bug: calling countAllResults after find($id) produce wrong result #2705
    • ๐Ÿ› Bug: $routes->cli() accessible via web browser if autoroute is true #2704
    • ๐Ÿ› Bug: Controllers and Views in subdirectories not working #2701
    • ๐Ÿ› Bug: undefined model method should throw exception #2688
    • ๐Ÿ› Bug: The custom error config of validation is not working #2678
    • ๐Ÿ› Bug: Can't test redirect()->route('routename'), while redirect()->to('path') is working with ControllerTester #2676
    • ๐Ÿ› Bug: php spark migrate:create File -n NameSpace doesn't create migration class under NameSpace/Database/Migrations directory with composer autoload #2664
    • ๐Ÿ› Bug: \I18n\Time object displaying +1 year when object date is set to 2021-12-31 #2663
    • ๐Ÿ› Bug: Route options filter didn't working #2654
    • ๐Ÿ› Bug: Error in Seeder #2653
    • ๐Ÿ› Bug: spark no longer lists function when used by without any parameters #2645
    • ๐Ÿ› Bug: Number Helper, Currency Fraction issue #2634
    • ๐Ÿ› Bug: forceHTTPS method ignores baseURL configuration when redirecting #2633
    • 0๏ธโƒฃ While serving Application on CLI using different port debugbar is still using a default 8080 port #2630
    • ๐Ÿ› Bug: spark migrate -all with appstarter #2627
    • ๐Ÿ› Bug: Problem when compiled vendor as PHAR file #2623
    • ๐Ÿ› Bug: debugbar javascript error #2621
    • ๐Ÿ› Bug: ResourceController json response always empty #2617
    • ๐Ÿ› Bug: Chrome logger does not work. #2616
    • ๐Ÿ› Bug: #2608
    • ๐Ÿ‘‰ User Guide is not in HTML in the download file #2607
    • Unnecessary files in the download installation #2606
    • ๐Ÿ› Bug: Class 'Kint\Renderer\Renderer' not found #2605
    • ๐Ÿ› Bug: Codeigniter4/framework composer.json not updated #2601
    • ๐Ÿ“š [Docs] Loading Environment into Configuration documentation described wrong #2554
    • ๐Ÿ› Bug: Sessions dont work on PostgreSQL #2546
    • ๐Ÿ› Bug: router service adds backslash to controllername if route is configured #2520
    • ๐Ÿ› Bug: JSONFormatter->format() cannot handle errordata, only outputs it's own error #2434
    • ๐Ÿ› Bug: HTTP Feature Testing only runs the FIRST test #2393
    • ๐Ÿ› Bug: Spark issue with PHP install location #2367
    • spark route issue #2194

    Closed issues:

    • Modular MVP on CI4 #2900
    • About javascript: void (0); #2887
    • Entity returns null when used on the model #2838
    • php spark migrate -g does not work #2832
    • ๐Ÿ› Bug: Namespacing of app/Config folder vs. app/Controller #2826
    • Controller Call to a member function getPost() on null #2823
    • โšก๏ธ QueryBuilder - Does not support JOIN in UPDATE #2799
    • Database model error when limiting delete() #2780
    • ๐Ÿ“ฆ codeigniter4/codeigniter4 package not exists in packagist #2753
    • datamap Entities not works! #2747
    • Error: Call to undefined function CodeIgniter\CLI\mb_strpos() #2746
    • ๐ŸŒฒ CodeIgniter\Log\Logger::logPath property is never used. #2738
    • ๐Ÿ› Bug: set_radio() in Form Helper does not work when radio button value equals "0" #2728
    • Array validation has a problem #2714
    • โœ‚ delete cookie not working #2700
    • โœ‚ remove default language local from url #2682
    • OpenSSLHandler: Encrypt/Decrypt #2680
    • RESTFUL API with CORS problem #2667
    • I guess there's no the third parameter #2657
    • 0๏ธโƒฃ set ci4 repo default branch = master #2643
    • ๐Ÿ› BUG: 4.0.2 Kint not found #2639
    • ๐Ÿ”‹ Feature: Migrate:Rollback/Refresh confirmation in production environment #2385

    ๐Ÿ”€ Merged pull requests:

    • ๐Ÿš€ 4.0.3 release #2912 (lonnieezell)
    • ๐Ÿ’… url_title() used CI3 style in user guide #2911 (jreklund)
    • ๐Ÿ›  fix undefined class 'CodeIgniter' #2910 (PingZii)
    • ๐Ÿ‘Œ Improved subjects in Controller and Routing chapter #2908 (jreklund)
    • ๐Ÿ›  Fix Model::first() only use orderBy() when group by is not empty #2907 (samsonasik)
    • ๐Ÿ‘ Allow bypassing content negotiation during API responses. #2904 (lonnieezell)
    • Ugtweaks #2903 (lonnieezell)
    • Carbonads #2902 (lonnieezell)
    • โž• Added information about the new features of the Pagination library #2901 (jlamim)
    • ๐Ÿ†• New features for pagination #2899 (jlamim)
    • ๐Ÿ›  Fixed lang() example in user guide #2898 (nmolinos)
    • ๐Ÿ‘‰ Make validation placeholders always available #2897 (jreklund)
    • ๐Ÿ [ci skip] Add make.bat for Windows users #2895 (paulbalandan)
    • โž• Added ability to delete row with string primary key via Model::delete($id) #2894 (samsonasik)
    • โšก๏ธ Update of the pagination template to make the correct use of the locale #2892 (jlamim)
    • [ci skip] route placeholders 'id' to 'num' #2891 (Instrye)
    • โš  [ci skip] fix warnings on compiling user guide #2886 (paulbalandan)
    • โž• Added more Common functions and improved rendering in userguide #2884 (jreklund)
    • ๐Ÿ— Build Your First Application used url_title incorrectly #2883 (jreklund)
    • [User guide] Correcting some details in the part that talks about model and entities #2878 (jlamim)
    • Shifted basic URI Routing examples down #2874 (nmolinos)
    • ๐Ÿ‘ Better locale matching against broad groups. Fixes #2774 #2872 (lonnieezell)
    • โœ… Fixes session active detection on force_https function and add more test CodeIgniter::forceSecureAccess() run force_https() #2871 (samsonasik)
    • ๐Ÿšš clean up use statements: remove unused and sort #2870 (samsonasik)
    • โœ… more test for View::renderString() for null tempData #2869 (samsonasik)
    • Localized label in validation rules #2868 (michalsn)
    • โšก๏ธ [ci skip] update translations version #2867 (Instrye)
    • ๐ŸŽ‰ Initialize $forge property in Seeder Class - fixes #2825 #2864 (jlamim)
    • ๐Ÿ›  fix. saveData not work #2861 (Instrye)
    • ๐Ÿ›  fix. getGetPost and getPostGet can't work in index empty #2860 (Instrye)
    • [ci skip]fix. getHeader return header object #2859 (Instrye)
    • ๐Ÿ›  fix. filters alias multiple #2857 (Instrye)
    • ๐Ÿ”ง [ci skip] typo fix Initial Configuration & Set Up #2856 (samsonasik)
    • Enclose file paths in double quotes to capture spaces #2853 (paulbalandan)
    • ๐Ÿ›  Strip directory separators from auto-generated cell cache name. Fixesโ€ฆ #2851 (lonnieezell)
    • Normalize dir separator of Exceptions::cleanPath and added more paths to clean #2847 (paulbalandan)
    • ๐Ÿ‘Œ Improve readability in the userguide with a fixed size #2846 (jreklund)
    • ๐Ÿ›  Fixed Issue #2840 on discovery of classes by FileLocator #2844 (paulbalandan)
    • โž• add $segment parameter in pager call by Model.php #2843 (paul45)
    • ๐Ÿ‘Œ Improve flash of unstyled content in userguide #2842 (jreklund)
    • โž• Add English message for "string" validation rule #2841 (rmilecki)
    • โœ… more tests for Common functions #2837 (samsonasik)
    • Pagination: open page > pageCount get last page #2834 (samsonasik)
    • โž• add ability for nested language definition #2833 (samsonasik)
    • ๐Ÿ“š Documentation fixes #2827 (pjio)
    • ๐Ÿ›  fix. URI path is empty #2824 (Instrye)
    • ignore coverage on exit and die #2820 (samsonasik)
    • โž• add respondUpdated() method into API\ResponseTrait #2816 (samsonasik)
    • ignore coverage on !CI_DEBUG #2814 (samsonasik)
    • ๐Ÿ›  Fix missing InvalidArgumentException in Database\BaseBuilder #2813 (samsonasik)
    • Ensure $_SERVER['SCRIPT_NAME'] ends with PHP #2810 (willnode)
    • ๐Ÿ‘ป make named constructor in Exception classes consistent: use return instead of throw #2809 (samsonasik)
    • โšก๏ธ Check if dataset is empty before Model update. #2808 (vibbow)
    • โœ… test Controller::validate() with string rules #2807 (samsonasik)
    • โœ… clean up buffer tweak in FeatureTestCaseTest #2805 (samsonasik)
    • using realpath() for define $pathsPath in index.php #2804 (samsonasik)
    • โž• add ext-mbstring to required and update regex that sanitize file name #2803 (samsonasik)
    • โž• Add resetting QBFrom part #2802 (michalsn)
    • โšก๏ธ Update Routes.php #2801 (mostafakhudair)
    • โž• add more test for Entity : 100% tested #2798 (samsonasik)
    • [ci skip] Fix download badge total shows #2797 (samsonasik)
    • โœ… test for I18n\Time::toFormattedDateString #2796 (samsonasik)
    • โœ… test Logger::determineFile() for no stack trace #2795 (samsonasik)
    • โœ… test CLI\CLI::strlen(null) #2794 (samsonasik)
    • โœ… test for API\ResponseTrait::format() with format is not json or xml #2793 (samsonasik)
    • โœ… test for View\Cell::render() with class has initController() method #2792 (samsonasik)
    • โœ… test Autoloader::initialize() with composer path not found #2791 (samsonasik)
    • โž• add ability to replace {locale} to request->getLocale() in form_open('action') #2790 (samsonasik)
    • โœ… test for IncomingRequest::getFileMultiple() #2789 (samsonasik)
    • โž• add MockEmail class #2788 (samsonasik)
    • โœ… test for CodeIgniter\Config\Services::email() #2785 (samsonasik)
    • 0๏ธโƒฃ make Model::paginate() use default perPage from Config\Pager->perPage if $perPage parameter not passed #2782 (samsonasik)
    • #2780 - LIMIT. #2781 (nowackipawel)
    • [ci skip] _remap method must have return #2779 (Instrye)
    • Rework get_filenames #2778 (MGatner)
    • ๐Ÿ›  Fix #2776 add ability to paginate() query with group by #2777 (samsonasik)
    • โšก๏ธ Update on "Build Your First Application" #2775 (jreklund)
    • ๐Ÿ›  Fix ? bind with := bind #2773 (musmanikram)
    • ๐Ÿ›  Fixed some styling in "Installation" chapter [ci skip] #2772 (jreklund)
    • โœ… Uncommented tests, mistake in my previous PR :( #2767 (musmanikram)
    • ๐Ÿ›  fix. MYSQLI::DBDebug can't woker #2755 (Instrye)
    • ๐Ÿ›  fix. delete_cookite can't delete alreday set Cookie #2709 (Instrye)
    • ๐Ÿ‘ Re-write userguide to support Python 3 and future proofing Sphinx #2671 (jreklund)
    • Colored table in CLI #2624 (enix-app)
  • v4.0.2 Changes

    February 25, 2020

    Full Changelog

    ๐Ÿ›  Fixed bugs:

    • ๐Ÿ› Bug: Your requirements could not be resolved to an installable set of packages. #2613

    ๐Ÿ”€ Merged pull requests:

    • โœ‚ Removed unused test class that was causing appstarter not to work from CLI. #2614 (lonnieezell)
    • โš  [UG] Fix all Sphinx warnings #2611 (LittleJ)
    • [UG] Sphinx_rtd_theme fixes and improvements #2610 (LittleJ)
  • v4.0.1 Changes

    February 24, 2020

    Full Changelog

    ๐Ÿ›  Fixed bugs:

    • ๐Ÿ› Bug: Difficult architecture of the codeigniter4 project #2602
    • ๐Ÿ› 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)