Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
6f1342f
Fix PHP 8.1 E_DEPRECATED issue when the page has no output.
pocketarc Jun 8, 2023
32dcc1d
Make the PDO driver always throw exceptions on failed queries.
pocketarc Jun 9, 2023
72786e4
Make query builder variables accessible to end-user code.
pocketarc Jun 9, 2023
55d7657
Add debugbar code back.
pocketarc Jun 13, 2023
dedd7a6
Fix issue with previous commit.
pocketarc Jun 13, 2023
6bff588
Merge PHP 8.2 support from gxgpet
pocketarc Jun 19, 2023
7cb9d54
Update package name for release in Packagist.
pocketarc Nov 3, 2023
7b34f8b
Fixes backward incompatibility caused by the upgrade from CI 3.1 to 3…
pocketarc Feb 25, 2024
cec56c5
Fix PHP 8.x compatibility (#5)
pocketarc Feb 25, 2024
ad09d76
Fixes backward incompatibility caused by the upgrade from CI 3.1 to 3…
pocketarc Feb 25, 2024
25a96c4
Fix deprecated dynamic property creation in CI_Profiler Library.
ajdunn2 Oct 27, 2024
ab8b010
Fix warning and ignored TTL in Redis cache driver.
siemova Oct 27, 2024
96fcced
Adds compatibility with PHP 8.4.
pocketarc Oct 29, 2024
28467ba
Fixes a few more PHP 8.4 compatibility issues.
pocketarc Oct 29, 2024
ba2bafc
Improve timezones() return type.
P2GR Dec 21, 2024
59d8cff
Fix #28: Fix Postgres DB forge deprecation notice.
pocketarc Sep 13, 2025
9f7bec3
Fix #25: Resolve dynamic property deprecation notice for CI models.
pocketarc Sep 13, 2025
e87d383
Fix #27: Clarify installation instructions and update CI_VERSION to f…
pocketarc Sep 13, 2025
62c8463
Fix #24: Fix deprecation notice in db->join().
pocketarc Sep 13, 2025
b008b9a
Fix #23: Fix deprecation notice in db->order_by().
pocketarc Sep 13, 2025
d68db8c
Fix #19: Fix PDO Postgres DB forge deprecation notice.
pocketarc Sep 13, 2025
f043617
Fix #16: Add the email helper back to the repo to reduce backward com…
pocketarc Sep 13, 2025
3dd7680
Add wording to the README explaining this is based on CI 3.2.
pocketarc Sep 13, 2025
a2d200e
Add PHP 8.3/8.4/8.5 to the test matrix in CI.
pocketarc Sep 13, 2025
1be9a6c
Update readme to clarify version support and maintenance policy.
pocketarc Sep 13, 2025
7a583c5
Fix PHP 8.5 compatibility issue with MySQL driver.
pocketarc Sep 13, 2025
91bb1b5
fix: remove deprecated MYSQLI_TYPE_INTERVAL constant for PHP 8.4+ com…
pocketarc Dec 27, 2025
baeaad2
fix(upload): add PHP 8.1+ compatibility for finfo_close() deprecation…
pocketarc Dec 27, 2025
91a3d80
fix: handle null values in Encryption library for PHP 8.1+ compatibil…
pocketarc Dec 27, 2025
93cd584
Merge gxgpet's XML-RPC fixes.
pocketarc Dec 27, 2025
c46e9a2
fix(log): restore log_file_extension config for backward compatibilit…
pocketarc Dec 27, 2025
ea3b4f9
fix(tests): update highlight_code test for PHP 8.4+ compatibility. PH…
pocketarc Dec 27, 2025
e486ffe
fix: handle null language line key in Lang::line() for PHP 8.5+.
pocketarc Dec 27, 2025
5300de4
fix(image): add PHP 8.0+ compatibility for imagedestroy() deprecation…
pocketarc Dec 27, 2025
5276118
fix(tests): conditionally call setAccessible() for PHP 8.1+ compatibi…
pocketarc Dec 27, 2025
b245092
fix(tests): add PHPUnit compatibility shim for assertObjectHasPropert…
pocketarc Dec 27, 2025
397a8b8
mimes: add support for webp image type
RedDragonWebDesign Dec 27, 2025
3fea824
Update DB_query_builder.php
Kaabi Dec 27, 2025
849eaea
Merge remote-tracking branch 'origin/develop' into develop
pocketarc Dec 27, 2025
d7ccac0
fix(xmlrpc): Replace deprecated xml_set_object() + string callback pa…
pocketarc Dec 27, 2025
746767e
fix(ci): replace deprecated set-output with $GITHUB_OUTPUT.
pocketarc Dec 27, 2025
fa7e9fe
fix(tests): correct PHP version check for highlight_string() format c…
pocketarc Dec 27, 2025
b7a984d
docs: add badges for PHPUnit tests, PHP compatibility, Packagist vers…
pocketarc Dec 27, 2025
5466331
docs: inline images
pocketarc Dec 27, 2025
eb3ac6b
docs: update project description for Packagist.
pocketarc Dec 27, 2025
1d7cc44
docs: update project description for Packagist.
pocketarc Dec 27, 2025
f534bc3
feat: restore Cart library removed in CI 3.2.
pocketarc Jan 19, 2026
1aa03c7
chore: Update version number.
pocketarc Jan 19, 2026
dca1348
docs: update upgrade guide and readme to reflect restored functionali…
pocketarc Jan 19, 2026
a39221a
fix: cast ctype_digit() arguments to string to resolve PHP 8.1+ depre…
pocketarc Feb 22, 2026
0204160
fix: cast mt_rand() arguments to int to resolve PHP 8.1+ deprecation …
pocketarc Feb 22, 2026
a87d76d
Fix deprecation notice for passing a null to preg_replace (#39)
kissit Feb 22, 2026
dfa6f32
fix: add PHPUnit 8.x to composer.json to restore PHP 7.2 test support.
pocketarc Feb 22, 2026
6ff5717
chore: bump version to 3.4.2.
pocketarc Feb 22, 2026
17ea1c6
Fix Redis session driver returning success on failed connection.
czirosan Mar 11, 2026
3bb853d
Restore deprecated functions that were removed in 3.2.0-dev (for back…
pocketarc Mar 21, 2026
8aafcce
fix: Make get_dir_file_info() call get_file_info() for each file. Fix…
pocketarc Jul 18, 2026
9317e57
fix: Initialise $result in write_log() to handle an empty log message…
pocketarc Jul 18, 2026
9d4d979
Update Edge user agent detection for legacy version
livenobin Jul 18, 2026
fb57d35
fix: Detect modern Edge instead of reporting it as Chrome.
pocketarc Jul 18, 2026
ab6a467
fix: Add create_sid() to CI_SessionWrapper for PHP 8.6 compatibility.
ajdunn2 Sep 11, 2026
ecc99e1
fix: Correct CI_VERSION declaration to 3.4.4. Fix #52.
ajdunn2 Sep 11, 2026
8ed7f32
fix: Remove extra closing PHP tag from highlight_code() on PHP 8.3+. …
ajdunn2 Sep 11, 2026
54a44e3
fix: Stop calling xml_parser_free() on PHP 8.0 and newer.
pocketarc Sep 12, 2026
8fb1f0b
fix: Patch vfsStream's spl_object_hash() call.
pocketarc Sep 12, 2026
70ada55
ci: Add PHP 8.6 to the matrix, fix issue causing JIT not to be enable…
pocketarc Sep 12, 2026
cda2007
chore: Bump version to 3.4.5.
pocketarc Sep 12, 2026
6ba661f
chore: Ignore .phpunit.result.cache.
pocketarc Sep 12, 2026
e405880
style: Fix missing whitespace.
pocketarc Sep 12, 2026
21eff4d
docs: List PHP 8.6 as supported.
pocketarc Sep 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
304 changes: 195 additions & 109 deletions .github/workflows/test-phpunit.yml
Original file line number Diff line number Diff line change
@@ -1,122 +1,208 @@
name: PHPUnit

on: [push, pull_request]
on: [ push, pull_request ]

permissions:
contents: read
contents: read

jobs:
tests:
runs-on: ubuntu-22.04
if: "!contains(github.event.head_commit.message, '[ci skip]')"
env:
PHP_INI_VALUES: assert.exception=1, zend.assertions=1
tests:
runs-on: ubuntu-22.04
if: "!contains(github.event.head_commit.message, '[ci skip]')"
env:
PHP_INI_VALUES: assert.exception=1, zend.assertions=1

strategy:
fail-fast: false
matrix:
php: [ '8.1', '8.0', '7.4', '7.3', '7.2', '7.1', '7.0', '5.6', '5.5', '5.4']
DB: [ 'pdo/mysql', 'pdo/pgsql', 'pdo/sqlite', 'mysqli', 'pgsql', 'sqlite' ]
compiler: [ default ]
include:
- php: '8.1'
DB: 'pdo/mysql'
compiler: jit
- php: '8.1'
DB: 'pdo/pgsql'
compiler: jit
- php: '8.1'
DB: 'pdo/sqlite'
compiler: jit
- php: '8.1'
DB: 'mysqli'
compiler: jit
- php: '8.1'
DB: 'pgsql'
compiler: jit
- php: '8.1'
DB: 'sqlite'
compiler: jit
- php: '8.0'
DB: 'pdo/mysql'
compiler: jit
- php: '8.0'
DB: 'pdo/pgsql'
compiler: jit
- php: '8.0'
DB: 'pdo/sqlite'
compiler: jit
- php: '8.0'
DB: 'mysqli'
compiler: jit
- php: '8.0'
DB: 'pgsql'
compiler: jit
- php: '8.0'
DB: 'sqlite'
compiler: jit
- php: '5.6'
DB: 'mysql'
compiler: default
- php: '5.5'
DB: 'mysql'
compiler: default
- php: '5.4'
DB: 'mysql'
compiler: default
strategy:
fail-fast: false
matrix:
php: [ '8.6', '8.5', '8.4', '8.3', '8.2', '8.1', '8.0', '7.4', '7.3', '7.2', '7.1', '7.0', '5.6', '5.5', '5.4' ]
DB: [ 'pdo/mysql', 'pdo/pgsql', 'pdo/sqlite', 'mysqli', 'pgsql', 'sqlite' ]
compiler: [ default ]
include:
- php: '8.6'
DB: 'pdo/mysql'
compiler: jit
- php: '8.6'
DB: 'pdo/pgsql'
compiler: jit
- php: '8.6'
DB: 'pdo/sqlite'
compiler: jit
- php: '8.6'
DB: 'mysqli'
compiler: jit
- php: '8.6'
DB: 'pgsql'
compiler: jit
- php: '8.6'
DB: 'sqlite'
- php: '8.5'
DB: 'pdo/mysql'
compiler: jit
- php: '8.5'
DB: 'pdo/pgsql'
compiler: jit
- php: '8.5'
DB: 'pdo/sqlite'
compiler: jit
- php: '8.5'
DB: 'mysqli'
compiler: jit
- php: '8.5'
DB: 'pgsql'
compiler: jit
- php: '8.5'
DB: 'sqlite'
- php: '8.4'
DB: 'pdo/mysql'
compiler: jit
- php: '8.4'
DB: 'pdo/pgsql'
compiler: jit
- php: '8.4'
DB: 'pdo/sqlite'
compiler: jit
- php: '8.4'
DB: 'mysqli'
compiler: jit
- php: '8.4'
DB: 'pgsql'
compiler: jit
- php: '8.4'
DB: 'sqlite'
- php: '8.3'
DB: 'pdo/mysql'
compiler: jit
- php: '8.3'
DB: 'pdo/pgsql'
compiler: jit
- php: '8.3'
DB: 'pdo/sqlite'
compiler: jit
- php: '8.3'
DB: 'mysqli'
compiler: jit
- php: '8.3'
DB: 'pgsql'
compiler: jit
- php: '8.3'
DB: 'sqlite'
- php: '8.2'
DB: 'pdo/mysql'
compiler: jit
- php: '8.2'
DB: 'pdo/pgsql'
compiler: jit
- php: '8.2'
DB: 'pdo/sqlite'
compiler: jit
- php: '8.2'
DB: 'mysqli'
compiler: jit
- php: '8.2'
DB: 'pgsql'
compiler: jit
- php: '8.2'
DB: 'sqlite'
compiler: jit
- php: '8.1'
DB: 'pdo/mysql'
compiler: jit
- php: '8.1'
DB: 'pdo/pgsql'
compiler: jit
- php: '8.1'
DB: 'pdo/sqlite'
compiler: jit
- php: '8.1'
DB: 'mysqli'
compiler: jit
- php: '8.1'
DB: 'pgsql'
compiler: jit
- php: '8.1'
DB: 'sqlite'
compiler: jit
- php: '8.0'
DB: 'pdo/mysql'
compiler: jit
- php: '8.0'
DB: 'pdo/pgsql'
compiler: jit
- php: '8.0'
DB: 'pdo/sqlite'
compiler: jit
- php: '8.0'
DB: 'mysqli'
compiler: jit
- php: '8.0'
DB: 'pgsql'
compiler: jit
- php: '8.0'
DB: 'sqlite'
compiler: jit
- php: '5.6'
DB: 'mysql'
compiler: default
- php: '5.5'
DB: 'mysql'
compiler: default
- php: '5.4'
DB: 'mysql'
compiler: default

services:
postgres:
image: postgres:12
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: ci_test
ports:
- 5432:5432
options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3
services:
postgres:
image: postgres:12
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: ci_test
ports:
- 5432:5432
options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3

mysql:
image: mysql:5.7
env:
MYSQL_ALLOW_EMPTY_PASSWORD: true
MYSQL_USER: travis
MYSQL_PASSWORD: travis
MYSQL_DATABASE: ci_test
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
mysql:
image: mysql:5.7
env:
MYSQL_ALLOW_EMPTY_PASSWORD: true
MYSQL_USER: travis
MYSQL_PASSWORD: travis
MYSQL_DATABASE: ci_test
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

steps:
- name: Checkout
uses: actions/checkout@v2
- name: Override PHP ini values for JIT compiler
if: matrix.compiler == 'jit'
run: echo "PHP_INI_VALUES::assert.exception=1, zend.assertions=1, opcache.enable=1, opcache.enable_cli=1, opcache.optimization_level=-1, opcache.jit=1255, opcache.jit_buffer_size=64M" >> $GITHUB_ENV
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Override PHP ini values for JIT compiler
if: matrix.compiler == 'jit'
run: echo "PHP_INI_VALUES=assert.exception=1, zend.assertions=1, opcache.enable=1, opcache.enable_cli=1, opcache.optimization_level=-1, opcache.jit=1255, opcache.jit_buffer_size=64M" >> $GITHUB_ENV

- name: Install PHP${{ matrix.php }} - DB ${{ matrix.DB }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
tools: composer, pecl
extensions: imagick, sqlite3, pgsql, mysqli, pdo, pdo_mysql, pdo_pgsql, pdo_sqlite, mbstring
ini-values: ${{ env.PHP_INI_VALUES }}
coverage: xdebug
- name: Install PHP${{ matrix.php }} - DB ${{ matrix.DB }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
tools: composer, pecl
extensions: sqlite3, pgsql, mysqli, pdo, pdo_mysql, pdo_pgsql, pdo_sqlite, mbstring
ini-values: ${{ env.PHP_INI_VALUES }}
coverage: xdebug

- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache composer dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install composer dependencies
run: composer install --no-progress --prefer-dist --optimize-autoloader
- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache composer dependencies
uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('composer.json') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install composer dependencies
run: composer install --no-progress --prefer-dist --optimize-autoloader

- name: PHPUnit Test
run: |
php -d error_reporting=E_ALL -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/${{ matrix.DB }}.phpunit.xml
env:
XDEBUG_MODE: coverage
- name: PHPUnit Test
run: |
php -d error_reporting=E_ALL -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/${{ matrix.DB }}.phpunit.xml
env:
XDEBUG_MODE: coverage
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ application/logs/*
!application/*/.htaccess

composer.lock
.phpunit.result.cache
tests/mocks/database/ci_test.sqlite

user_guide_src/build/*
Expand Down
14 changes: 14 additions & 0 deletions application/config/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,20 @@
*/
$config['log_filename'] = '';

/*
|--------------------------------------------------------------------------
| Log File Extension (DEPRECATED)
|--------------------------------------------------------------------------
|
| This option is deprecated. Use 'log_filename' instead.
| Kept for backward compatibility with CI 3.1.x configurations.
|
| If 'log_filename' is set, this option is ignored.
| Example: 'txt' or 'log' (without leading dot)
|
*/
$config['log_file_extension'] = '';

/*
|--------------------------------------------------------------------------
| Log File Permissions
Expand Down
3 changes: 2 additions & 1 deletion application/config/mimes.php
Original file line number Diff line number Diff line change
Expand Up @@ -182,5 +182,6 @@
'odt' => 'application/vnd.oasis.opendocument.text',
'odm' => 'application/vnd.oasis.opendocument.text-master',
'ott' => 'application/vnd.oasis.opendocument.text-template',
'oth' => 'application/vnd.oasis.opendocument.text-web'
'oth' => 'application/vnd.oasis.opendocument.text-web',
'webp' => 'image/webp'
);
Loading