Skip to content

Latest commit

 

History

History
565 lines (489 loc) · 58.9 KB

CHANGELOG_4.1.md

File metadata and controls

565 lines (489 loc) · 58.9 KB

Changelog

v4.1.9 (2022-02-25)

Full Changelog

SECURITY

  • Remote CLI Command Execution Vulnerability was fixed. See the Security advisory for more information.
  • Cross-Site Request Forgery (CSRF) Protection Bypass Vulnerability was fixed. See the Security advisory for more information.

v4.1.8 (2022-01-24)

Full Changelog

SECURITY

  • XSS Vulnerability in the API\ResponseTrait was fixed. See the Security advisory for more information.

v4.1.7 (2022-01-09)

Full Changelog

Breaking Changes

Fixed Bugs

v4.1.6 (2022-01-03)

Full Changelog

SECURITY

  • Deserialization of Untrusted Data found in the old() function was fixed. See the Security advisory for more information.

Breaking Changes

Fixed Bugs

  • fix: FileLocator cannot find files in sub-namespaces of the same vendor by @kenjis in codeigniter4#5292
  • fix: add a workaround for upgraded users who do not update Config\Exceptions by @kenjis in codeigniter4#5314
  • Fix db escape negative integers by @kenjis in codeigniter4#5277
  • Fix: remove incorrect processing of CLI params by @kenjis in codeigniter4#5274
  • fix: table alias is prefixed when LIKE clause by @kenjis in codeigniter4#5361
  • fix: dot_array_search() unexpected array structure causes Type Error by @kenjis in codeigniter4#5372
  • fix: UploadedFile::move() may return incorrect value by @kenjis in codeigniter4#5302
  • fix: BaseModel::insert() may not pass all the values from Entity by @katie1348 in codeigniter4#4980
  • fix: IncomingRequest::getJsonVar() may cause TypeError by @kenjis in codeigniter4#5392
  • chore: fix example test code for appstarter and module by @kenjis in codeigniter4#5421
  • fix: Model::save() may call unneeded countAllResults() by @kenjis in codeigniter4#5439
  • fix: errors when MariaDB/MySQL has ANSI_QUOTES enabled by @kenjis in codeigniter4#5425
  • fix: Security class sends cookies immediately by @kenjis in codeigniter4#5429
  • fix: is_cli() returns true when $_SERVER['HTTP_USER_AGENT'] is missing by @kenjis in codeigniter4#5393
  • fix: MySQLi\Connection::_foreignKeyData() may return duplicated rows by @kenjis in codeigniter4#5416
  • fix: number_to_currency() error on PHP 8.1 by @kenjis in codeigniter4#5454
  • fix: VENDORPATH definition by @kenjis in codeigniter4#5453
  • fix: Throttler does not show correct token time by @kenjis in codeigniter4#5470
  • fix: directory_mirror() throws an error if destination directory exists by @kenjis in codeigniter4#5493
  • fix: KINT visual error when activating CSP by @kenjis in codeigniter4#5501

New Features

  • feat: add filter to check invalid chars in user input by @kenjis in codeigniter4#5227

Enhancements

Refactoring

New Contributors

v4.1.5 (2021-11-08)

Full Changelog

Fixed bugs:

  • Fix entity name generation when bundled in model by @paulbalandan in codeigniter4#5055
  • Fix Model::__call throwing BadMethodCallException on empty results by @ytetsuro in codeigniter4#5139
  • Fixed an issue where the dropForeginKey method would execute an empty query when the dropConstraintStr property was empty. by @ytetsuro in codeigniter4#5173
  • Update 'updated_at' when enabled in replace() by @paulbalandan in codeigniter4#4684
  • Fix query binding with two colons in query by @kenjis in codeigniter4#5117
  • Fixed the problem that _createTable does not take into account that it returns true. by @ytetsuro in codeigniter4#5133
  • Fixed a problem with not run escape for identities in like when insensitiveSearch is true. by @ytetsuro in codeigniter4#5170
  • Fixed an issue where an unnecessary prefix was given when the random number was a column. by @ytetsuro in codeigniter4#5179
  • Always escape identifiers in the set(), setUpdateBatch(), and insertBatch() by @ytetsuro in codeigniter4#5132
  • Error when value is an object - validating api data by @daycry in codeigniter4#5142
  • Fix color not updated in several places of the precompiled CSS by @vlakoff in codeigniter4#5155
  • Fix debugbar styles printing by @paulbalandan in codeigniter4#5100
  • Fix highlighting in database debug toolbar by @vlakoff in codeigniter4#5129
  • Fix debug toolbar db connection count by @danielTiringer in codeigniter4#5172
  • Fix CSRF filter does not work when set it to only post by @kenjis in codeigniter4#5194
  • Add CSRF Protection for PUT/PATCH/DELETE by @kenjis in codeigniter4#5228
  • Fix GC issue when session lifetime is set to 0 by @lf-uraku-yuki in codeigniter4#4744
  • Fix wrong helper path resolution by @paulbalandan in codeigniter4#5246
  • Fix: remove CURLRequest headers sharing from $_SERVER by @kenjis in codeigniter4#5249
  • Fix Localization not working/being ignored for 404 page by @kenjis in codeigniter4#5267
  • fix: module filters are not discovered when using route filters by @kenjis in codeigniter4#5280
  • IncomingRequest - Trim trailing slash by @najdanovicivan in codeigniter4#4974
  • Previous Responses by @MGatner in codeigniter4#5034
  • (Paging) Ensure page validity by @puschie286 in codeigniter4#5125
  • Fix variable variable $$id in RedisHandler by @Terrorboy in codeigniter4#5062
  • Fixes and enhancements to Exceptions by @paulbalandan in codeigniter4#5052

Implemented enhancements:

Merged pull requests:

New Contributors

v4.1.4 (2021-09-06)

Full Changelog

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).

What's Changed

New Contributors

v4.1.3 (2021-06-06)

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 (2021-05-18)

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
  • 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 (2021-02-01)

Full Changelog

Fixed bugs:

  • Fixed an issue where .gitattributes was preventing framework downloads

v4.1.0 (2021-01-31)

Full Changelog

Implemented enhancements:

See CHANGELOG_4.0.md