CodeIgniter 4 Development v4.1.2 Release Notes
Release Date: 2021-05-17 // almost 3 years ago-
Implemented enhancements:
- ๐ New HTTP classes,
Cookie
andCookieStore
, for abstracting web cookies. - ๐ New
assertRedirectTo()
assertion available for HTTP tests. - ๐ New logger handler,
ErrorlogHandler
, that writes toerror_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 ofnon-class
files will be listed in the$files
property ofConfig\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 ofCodeIgniter\Entity\Entity
- ๐ Deprecated cookie-related properties of
Response
in order to use theCookie
class. - ๐ Deprecated cookie-related properties of
Security
in order to use theCookie
class. - ๐ Deprecated cookie-related properties of
Session
in order to use theCookie
class. - ๐ Deprecated
Security::isExpired()
to use theCookie
's internal expires status. - โ
Deprecated
CIDatabaseTestCase
to use theDatabaseTestTrait
instead. - โ
Deprecated
FeatureTestCase
to use theFeatureTestTrait
instead. - โ
Deprecated
ControllerTester
to use theControllerTestTrait
instead. - โ
Consolidated and deprecated
ControllerResponse
andFeatureResponse
in favor ofTestResponse
. - ๐ Deprecated
Time::instance()
, useTime::createFromInstance()
instead (now acceptsDateTimeInterface
). - ๐ Deprecated
IncomingRequest::removeRelativeDirectory()
, useURI::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
andnl2br
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:
- ๐ Fix nullable type not showing in SQL string #4696 (paulbalandan)
- โ Add reference to cache repo #4694 (MGatner)
- ๐ Allow CI Environments #4692 (MGatner)
- โ Add URI cast #4691 (MGatner)
- ๐คก MockCache::getCacheInfo() #4689 (MGatner)
- โ Remove Psr\Cache #4688 (MGatner)
- Spacing issues #4686 (MGatner)
- โก๏ธ [Rector] Update rector 0.11.2 and phpstan 0.12.86 #4685 (samsonasik)
- โก๏ธ Optimize CommandRunner and Commands #4683 (paulbalandan)
- โช Revert Actions minor version #4682 (MGatner)
- โช Revert Actions minor versioning #4681 (MGatner)
- โฌ๏ธ Bump shivammathur/setup-php from 2 to 2.11.0 #4679 (dependabot[bot])
- โฌ๏ธ Bump actions/checkout from 2 to 2.3.4 #4678 (dependabot[bot])
- โก๏ธ [Rector] Update rector to 0.10.22, remove symplify/composer-json-manipulator #4677 (samsonasik)
- URL Functions #4675 (MGatner)
- โ Remove unused imports #4674 (paulbalandan)
- โ Split URL Helper tests #4672 (MGatner)
- ๐ [Rector] Apply Rector: RemoveUnusedPrivatePropertyRector #4671 (samsonasik)
- โก๏ธ [UG] update line number for "managing apps" #4670 (totoprayogo1916)
- โ Add setLocale to UG #4669 (MGatner)
- UTC Time from timestamp #4668 (MGatner)
- PSR: Cache #4667 (MGatner)
- Limit cache filenames #4666 (MGatner)
- ๐ Use descriptive failure message for
assertLogged
#4665 (paulbalandan) - [Rector] Use $containerConfigurator->import() instead of "sets" Option #4664 (samsonasik)
- โก๏ธ Update rector/rector requirement from 0.10.19 to 0.10.21 #4663 (dependabot[bot])
- Spark header suppression #4661 (MGatner)
- Registrar and .env priority #4659 (MGatner)
- Reset Single Service #4657 (MGatner)
- โช Unify migration message format for
migrate
andmigrate:rollback
#4656 (paulbalandan) - ๐ [Scripts] Make sure bash script still works in Windows #4655 (paulbalandan)
- ๐ change instance() to createFromInstance() #4654 (totoprayogo1916)
- โ Add branch alias for develop branch #4652 (paulbalandan)
- ๐จ Refactor URI detection #4651 (MGatner)
- [Scipts] Ensure admin/setup.sh exists before run bash admin/setup.sh #4650 (samsonasik)
- โก๏ธ Update rector/rector requirement from 0.10.17 to 0.10.19 #4649 (dependabot[bot])
- ๐ [ci skip] Remove ajax filter reference from docs. Fixes #2314 #4648 (lonnieezell)
- Internal URI handling #4646 (MGatner)
- ๐ URI::removeDotSegments() #4644 (MGatner)
- ๐ [Rector] Pin "nikic/php-parser": "4.10.4" #4642 (samsonasik)
- โก๏ธ Update to psr/log v1.1.4 #4641 (paulbalandan)
- โก๏ธ Update rector/rector requirement from 0.10.15 to 0.10.17 #4639 (dependabot[bot])
- โก๏ธ Update MockCache #4638 (MGatner)
- Cache Key Validation #4637 (MGatner)
- โก๏ธ [Cache] Allow covariant returns and optimize code #4635 (paulbalandan)
- ๐จ Refactor ComposerScripts #4634 (paulbalandan)
- Expand Time for interface #4633 (MGatner)
- ๐ฒ Patch Log code #4631 (MGatner)
- Cache Returns Types #4630 (MGatner)
- ๐ Cache getMetadata() Format #4629 (MGatner)
- ๐ fix(cache): add check for redis empty results in deleteMatching #4628 (yassinedoghri)
- โก๏ธ Update rector/rector requirement from 0.10.12 to 0.10.15 #4627 (dependabot[bot])
- โ Add fallback for Config\Cookie #4625 (paulbalandan)
- โ [Test] Use @codeCoverageIgnore for deprecated class/method #4623 (samsonasik)
- ๐ Fix: Nested sections rendering #4622 (iRedds)
- โก๏ธ Update rector/rector requirement from 0.10.11 to 0.10.12 #4621 (dependabot[bot])
- โก๏ธ Update phpstan/phpstan requirement from 0.12.84 to 0.12.85 #4620 (dependabot[bot])
- โฌ๏ธ Bump actions/github-script from v4.0.1 to v4.0.2 #4614 (dependabot[bot])
- โก๏ธ Update rector/rector requirement from 0.10.9 to 0.10.11 #4613 (dependabot[bot])
- ๐จ [Rector] Refactor UnderscoreToCamelCaseVariableNameRector with latest Rector compatible code #4612 (samsonasik)
- [Feat][Autoloader] Allow autoloading non-class files #4611 (paulbalandan)
- failValidationError can take an array of errors #4609 (caswell-wc)
- assertJsonFragment fails gracefully with invalid json #4608 (caswell-wc)
- Non-persistent fake #4607 (caswell-wc)
- ๐ Fix validation of array data #4606 (paulbalandan)
- ๐ Use realpath() to fix app prioritization of validation messages #4605 (paulbalandan)
- Optimizations for Autoloader #4604 (paulbalandan)
- ๐ format style #4603 (totoprayogo1916)
- whitespaces #4602 (totoprayogo1916)
- [Rector] Apply Full PHP 7.3 Rector Set List (Skip JsonThrowOnErrorRector & StringifyStrNeedlesRector) #4601 (samsonasik)
- โฌ๏ธ Bump actions/github-script from v3 to v4.0.1 #4599 (dependabot[bot])
- Simplify Cookie Class #4596 (mostafakhudair)
- ๐ Fix service methods โฆ$params type #4594 (najdanovicivan)
- ๐ Fix new service replacement service provider precedence on core factory implementations #4593 (element-code)
- โก๏ธ Update rector/rector requirement from 0.10.6 to 0.10.9 #4592 (dependabot[bot])
- Debug/Toolbar - Memory issue fix #4590 (najdanovicivan)
- BaseModel - Add public getIdValue() method #4589 (najdanovicivan)
- ๐ Feature: Escaping array dot notation #4588 (iRedds)
- โก๏ธ Update phpstan/phpstan requirement from 0.12.83 to 0.12.84 #4587 (dependabot[bot])
- extra </li> in tabs area #4586 (jbrahy)
- โก๏ธ user_guide update: remove whitespaces, convert tabs to spaces & adjust the over-extended lines #4585 (totoprayogo1916)
- ๐ Fix: BaseModel. Removed duplicate code. #4581 (iRedds)
- ๐ Change Entity Namespace #4577 (mostafakhudair)
- ๐ [Rector] Remove RemoveDefaultArgumentValueRector #4576 (samsonasik)
- ๐ [Rector] Add Comment for reason RemoveDefaultArgumentValueRector copied to utils/Rector #4575 (samsonasik)
- ๐ [Rector] Copy RemoveDefaultArgumentValueRector to utils/Rector #4574 (samsonasik)
- ๐ Fix: Validation::withRequest() with Content-Type: multipart/form-data #4571 (iRedds)
- โก๏ธ [Rector] Update Rector 0.10.6, re-enable auto imports #4569 (samsonasik)
- ๐ feat(cache): add deleteMatching method to remove multiple cache items #4567 (yassinedoghri)
- Mysql connection issue with MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT #4566 (fedeburo)
- โฌ๏ธ Bump actions/cache from v2.1.4 to v2.1.5 #4564 (dependabot[bot])
- [Rector] Apply Rector: UnnecessaryTernaryExpressionRector #4563 (samsonasik)
- Check intl extension loaded on check min PHP version #4562 (samsonasik)
- Prefix calls to getenv() during config resolution #4561 (paulbalandan)
- [Rector] Apply Rector: ChangeArrayPushToArrayAssignRector #4560 (samsonasik)
- โ [Rector] Enable check tests/system/Models #4557 (samsonasik)
- Debugging SQL Server in Actions #4554 (paulbalandan)
- ๐ Support for masking sensitive debug data #4550 (pixobit)
- ๐ Use message directly if intl is not available #4549 (paulbalandan)
- โ Add compatibility for strict types #4548 (paulbalandan)
- โ Removes deprecated settings in env file #4547 (paulbalandan)
- ๐ Fix wrong argument passed in doc #4546 (paulbalandan)
- ๐ Fix dot notation for if_exist #4545 (paulbalandan)
- ๐ป Relocate cookie exception #4544 (mostafakhudair)
- ๐ [Rector] Apply RemoveDefaultArgumentValueRector #4543 (samsonasik)
- ๐ Fix html formatting for exceptions and errors #4542 (musmanikram)
- Create Config::Cookie Class #4508 (mostafakhudair)
- ๐ New HTTP classes,