CodeIgniter 4 Development v4.1.2 Release Notes

Release Date: 2021-05-17 // almost 3 years ago
  • 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: