Version 4.0.0-alpha.3

Release Date: November 30, 2018

Next alpha release of CodeIgniter4

The list of changed files follows, with PR numbers shown.

  • admin/
    • framework/* #1553

    • starter/* #1553

    • docbot #1553

    • release* #1484,

    • pre-commit #1388

    • README.md #1553

    • setup.sh #1388

  • application /
    • Config/
      • Autoload #1396, #1416

      • Mimes #1368, #1465

      • Pager #622

      • Services #1469

    • Filters/Honeypot #1376

    • Views/
      • errors/* #1415, #1413, #1469

      • form.php removed #1442

  • public /
    • index.php #1388, #1457

  • system /
    • Autoloader/
      • Autoloader #1547

      • FileLocator #1547, #1550

    • Cache/
      • Exceptions/CacheException #1525

      • Handlers/FileHandler #1547, #1525

      • Handlers/MemcachedHandler #1383

    • CLI/
      • CLI #1432, #1489

    • Commands/
      • Database/
        • CreateMigration #1374, #1422, #1431

        • MigrateCurrent #1431

        • MigrateLatest #1431

        • MigrateRollback #1431

        • MigrateStatus #1431

        • MigrateVersion #1431

      • Sessions/CrateMigration #1357

    • Config/
      • AutoloadConfig #1416

      • BaseService #1469

      • Mimes #1453

      • Services #1180, #1469

    • Database/
      • BaseBuilder #1335, #1491, #1522

      • BaseConnection #1335, #1407, #1491, #1522

      • BaseResult #1426

      • Config #1465, #1469, #1554

      • Forge #1343, #1449, #1470, #1530

      • MigrationRunner #1371

      • MySQLi/Connection #1335, #1449

      • MySQLi/Forge #1343, #1344, #1530

      • MySQLi/Result #1530

      • Postgre/Connection #1335, #1449

      • Postgre/Forge #1530

      • SQLite3/Connection #1335, #1449

      • SQLite3/Forge #1470, #1547

    • Debug
      • Exceptions #1500

      • Toolbar #1370, #1465, #1469, #1547

      • Toolbar/Views/toolbar.tpl #1469

    • Email/
      • Email #1389, #1413, #1438, #1454, #1465, #1469, #1547

    • Events/
      • Events #1465, #1469, #1547

    • Files/
      • File #1399, #1547

    • Format/
      • XMLFormatter #1471

    • Helpers/
      • array_helper #1412

      • filesystem_helper #1547

    • Honeypot/
      • Honeypot #1460

    • HTTP/
      • CURLRequest #1547, #1498

      • DownloadResponse #1375

      • Exceptions/DownloadException #1405

      • Files/FileCollection #1506

      • Files/UploadedFile #1335, #1399, #1500, #1506, #1547

      • IncomingRequest #1445, #1469, #1496

      • Message #1497

      • RedirectResponse #1387, #1451, #1464

      • Response #1456, #1472, #1477, #1486, #1504, #1505, #1497, #622

      • ResponseInterface #1384

      • UploadedFile #1368, #1456

      • URI #1213, #1469, #1508

    • Images/Handlers/
      • ImageMagickHandler #1546

    • Language/
      • en/Cache #1525

      • en/Database #1335

      • en/Filters #1378

      • en/Migrations #1374

      • Language #1480, #1489

    • Log/
      • Handlers/FileHandler #1547

    • Pager/
      • Pager #1213, #622

      • PagerInterface #622

      • PagerRenderer #1213, #622

      • Views/default_full #622

      • Views/default_head #622

      • Views/default_simple #622

    • Router/
      • RouteCollection #1464, #1524

      • RouteCollectionInterface #1406, #1410

      • Router #1523, #1547

    • Session/Handlers/
      • BaseHandler #1180, #1483

      • DatabaseHandler #1180

      • FileHandler #1180, #1547

      • MemcachedHandler #1180

      • RedisHandler #1180

    • Test/
      • CIUnitTestCase #1467

      • FeatureTestCase #1427, #1468

      • Filters/CITestStreamFilter #1465

    • Validation /
      • CreditCardRules #1447, #1529

      • FormatRules #1507

      • Rules #1345

      • Validation #1345

    • View/
      • Filters #1469

      • Parser #1417, #1547

      • View #1357, #1377, #1410, #1547

    • bootstrap #1547

    • CodeIgniter #1465, #1505, #1523, 2047b5a, #1547

    • Common #1486, #1496, #1504, #1513

    • ComposerScripts #1469, #1547

    • Controller #1423

    • Entity #1369, #1373

    • Model #1345, #1380, #1373, #1440

  • tests /
    • _support/
      • HTTP/MockResponse #1456

      • _bootstrap.php #1397, #1443

    • Cache/Handlers/
      • FileHandlerTest #1547, #1525

      • MemcachedHandlerTest #1180, #1383

      • RedisHandlerTest #1180, #1481

    • CLI/
      • CLITest #1467, #1489

    • Commands/
      • SessionCommandsTest #1455

    • Database/Live/
      • ConnectTest #1554

      • ForgeTest #1449, #1470

    • HTTP/
      • CURLRequestTest#1498

      • Files/FileCOllectionTest #1506

      • Files/FileMovingTest #1424

      • DownloadResponseTest #1375

      • IncomingRequestTest #1496

      • RedirectResponseTest #1387, #1456

      • ResponseCookieTest #1472, #1509

      • ResponseSendTest #1477, #1486, #1509

      • ResponseTest #1375, #1456, #1472, #1486, #622

      • URITest #1456, #1495

    • Helpers/
      • DateHelperTest #1479

    • I18n/
      • TimeTest #1467, #1473

    • Language/
      • LanguageTest #1480

    • Log/
      • FileHandlerTest #1425

    • Pager/
      • PagerRendererTest #1213, #622

      • PagerTest #622

    • Router/
      • RouteCollectionTest #1438, #1524

      • RouterTest #1438, #1523

    • Session/
      • SessionTest #1180

    • Test/
      • BootstrapFCPATHTest #1397

      • FeatureTestCase #1468

      • TestCaseEmissionsTest #1477

      • TestCaseTest #1390

    • Throttle/
      • ThrottleTest #1398

    • Validation/
      • FormatRulesTest #1507

    • View/
      • ParserTest #1335

    • CodeIgniterTest #1500

    • CommonFunctionsSendTest #1486, #1509

    • CommonFunctionsTest #1180, #1486, #1496

  • user_guide_src /source/
    • changelogs/ #1385, #1490, #1553

    • concepts/
      • autoloader #1547

      • security #1540

      • services #1469

      • structure #1448

    • database/
      • queries #1407

    • dbmgmt/
      • forge #1470

      • migration #1374, #1385, #1431

      • seeds #1482

    • extending/
      • core_classes #1469

    • helpers/
      • form_helper #1499

    • installation/
      • index #1388

    • libraries/
      • caching #1525

      • pagination #1213

      • validation #27868b, #1540

    • models/
      • entities #1518, #1540

    • outgoing/
      • response #1472, #1494

    • testing/
      • overview #1467

    • tutorial/
      • create_news_item #1442

      • static_pages #1547

  • /
    • composer.json #1388, #1418, #1536, #1553

    • README.md #1553

    • spark 2047b5a

    • .travis.yml #1394

PRs merged:

  • #1554 Serviceinstances

  • #1553 Admin/scripts

  • #1550 remove commented CLI::newLine($tempFiles) at FileLocator

  • #1549 use .gitkeep instead of .gitignore in Database/Seeds directory

  • #1547 Change file exists to is file

  • #1546 ImageMagickHandler::__construct …

  • #1540 Update validation class User Guide

  • #1530 database performance improvement : use foreach() when possible

  • 2047b5a Don’t run filters when using spark.

  • #1539 remove mb_* (mb string usage) in CreditCardRules

  • #1536 ext-json in composer.json

  • #1525 remove unneeded try {} catch {}

  • #1524 Test routes resource with ‘websafe’ option

  • #1523 Check if the matched route regex is filtered

  • #1522 add property_exists check on BaseBuilder

  • #1521 .gitignore clean up

  • #1518 Small typo: changed setCreatedOn to setCreatedAt

  • #1517 move .htaccess from per-directory in writable/{directory} to writable/

  • #1513 More secure redirection

  • #1509 remove unused use statements

  • #1508 remove duplicate strtolower() call in URI::setScheme() call

  • #1507 Fix multi “empty” string separated by “,” marked as valid emails

  • #1506 Flesh out HTTP/File unit testing

  • #1505 Do not exit until all Response is completed

  • 27868b Add missing docs for {field} and {param} placeholders

  • #1504 Revert RedirectResponse changes

  • #1500 Ignoring errors suppressed by @

  • #1499 Fix form_helper’s set_value writeup

  • #1498 Add CURLRequest helper methods

  • #1497 Remove unused RedirectException

  • #1496 Fix Common::old()

  • #1495 Add URI segment test

  • #1494 Method naming in user guide

  • #1491 Error logging

  • #1490 Changelog(s) restructure

  • #1489 Add CLI::strlen()

  • #1488 Load Language strings from other locations

  • #1486 Test RedirectResponse problem report

  • #1484 missing slash

  • #1483 Small typo in SessionHandlersBaseHandler.php

  • #1482 doc fix: query binding fix in Seeds documentation

  • #1481 RedisHandler test clean up

  • #1480 Fix Language Key-File confusion

  • #1479 Yet another time test to fix

  • #1477 Add Response send testing

  • #1475 Correct phpdocs for Forge::addField()

  • #1473 Fuzzify another time test

  • #1472 HTTPResponse cookie testing & missing functionality

  • #1471 remove unused local variable $result in XMLFormatter::format()

  • #1470 Allow create table with array field constraints

  • #1469 use static:: instead of self:: for call protected/public functions as well

  • #1468 Fix FeatureTestCaseTest output buffer

  • #1467 Provide time testing within tolerance

  • #1466 Fix phpdocs for BaseBuilder

  • #1465 use static:: instead of self:: for protected and public properties

  • #1464 remove unused use statements

  • #1463 Fix the remaining bcit-ci references

  • #1461 Typo fix: donload -> download

  • #1460 remove unneeded ternary check at HoneyPot

  • #1457 use $paths->systemDirectory in public/index.php

  • #1456 Beef up HTTP URI & Response testing

  • #1455 un-ignore app/Database/Migrations directory

  • #1454 add missing break; in loop at Email::getEncoding()

  • #1453 BugFix if there extension has only one mime type

  • #1451 remove unneeded $session->start(); check on RedirectResponse

  • #1450 phpcbf: fix all at once

  • #1449 Simplify how to get indexData from mysql/mariadb

  • #1448 documentation: add missing application structures

  • #1447 add missing break; on loop cards to get card info at CreditCardRules

  • #1445 using existing is_cli() function in HTTPIncomingRequest

  • #1444 Dox for reorganized repo admin (4 of 4)

  • #1443 Fixes unit test output not captured

  • #1442 remove form view in app/View/ and form helper usage in create new items tutorial

  • #1440 Access to model’s last inserted ID

  • #1438 Tailor the last few repo org names (3 of 4)

  • #1437 Replace repo org name in MOST php docs (2 of 4)

  • #1436 Change github organization name in docs (1 of 4)

  • #1432 Use mb_strlen to get length of columns

  • #1431 can’t call run() method with params from commands migrations

  • #1427 Fixes “options” request call parameter in FeatureTestCase

  • #1416 performance improvement in DatabaseBaseResult

  • #1425 Ensure FileHandlerTest uses MockFileHandler

  • #1424 Fix FileMovingTest leaving cruft

  • #1423 Fix Controller use validate bug

  • #1422 fix Migrations.classNotFound

  • #1418 normalize composer.json

  • #1417 fix Parser::parsePairs always escapes

  • #1416 remove $psr4[‘TestsSupport’] definition in applicationConfigAutoload

  • #1415 remove unneded “defined(‘BASEPATH’) …

  • #1413 set more_entropy = true in all uniqid() usage

  • #1412 function_exists() typo fixes on array_helper

  • #1411 add missing break; in loop in View::render()

  • #1410 Fix spark serve not working from commit 2d0b325

  • #1407 Database: add missing call initialize() check on BaseConnection->prepare()

  • #1406 Add missing parameter to RouteCollectionInterface

  • #1405 Fix language string used in DownloadException

  • #1402 Correct class namespacing in the user guide

  • #1399 optional type hinting in guessExtension

  • #1398 Tweak throttle testing

  • #1397 Correcting FCPATH setting in tests/_support/_bootstrap.php

  • #1396 only register PSR4 “TestsSupport” namespace in “testing” environment

  • #1395 short array syntax in docs

  • #1394 add php 7.3 to travis config

  • #1390 Fixed not to output “Hello” at test execution

  • #1389 Capitalize email filename

  • #1388 Phpcs Auto-fix on commit

  • #1387 Redirect to named route

  • #1385 Fix migration page; udpate changelog

  • #1384 add missing ResponseInterface contants

  • #1383 fix TypeError in MemcachedHandler::__construct()

  • #1381 Remove unused use statements

  • #1380 count() improvement, use truthy check

  • #1378 Update Filters language file

  • #1377 fix monolog will cause an error

  • #1376 Fix cannot use class Honeypot because already in use in AppFiltersHoneypot

  • #1375 Give download a header conforming to RFC 6266

  • #1374 Missing feature migration.

  • #1373 Turning off casting for db insert/save

  • #1371 update method name in coding style

  • #1370 Toolbar needs logging. Fixes #1258

  • #1369 Remove invisible character

  • #1368 UploadedFile->guessExtenstion()…

  • #1360 rm –cached php_errors.log file

  • #1357 Update template file is not .php compatibility

  • #1345 is_unique tried to connect to default database instead of defined in DBGroup

  • #1344 Not to quote unecessary table options

  • #1343 Avoid add two single quote to constraint

  • #1335 Review and improvements in databases drivers MySQLi, Postgre and SQLite

  • #1213 URI segment as page number in Pagination

  • #1180 using HTTPRequest instance to pull ip address

  • #622 Add Header Link Pagination