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
    • bootstrao #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 application/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 application/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