CodeIgniter 3.1.11 -> 3.4.5 (pocketarc fork) en PHP 8.3-fixes
- system/ vervangen door CodeIgniter 3.4.5 (pocketarc/codeigniter, PHP 8.2-8.5 compatibel) - config.php, mimes.php, user_agents.php en error-views bijgewerkt naar 3.4.5 - composer.json: php-constraint "^7.4 || ^8.0" zodat composer install op 8.3 werkt - PHP 8-fatals opgelost: count()/array-functies op FALSE/null, rekenen met lege strings, delen door nul, property zetten op FALSE, curly-brace string offsets, ongedefinieerde constanten, foute curl_setopt in Phantom_model::create_img - dynamic properties gedeclareerd in libraries, optionele parameters voor verplichte opgelost - vergelijkingen waar '' == 0 in PHP 8 anders uitvalt gecast naar (int) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* This content is released under the MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014 - 2019, British Columbia Institute of Technology
|
||||
* Copyright (c) 2019 - 2022, CodeIgniter Foundation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -30,6 +30,7 @@
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
|
||||
* @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
|
||||
* @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/)
|
||||
* @license https://opensource.org/licenses/MIT MIT License
|
||||
* @link https://codeigniter.com
|
||||
* @since Version 1.0.0
|
||||
@@ -42,7 +43,7 @@ defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
*
|
||||
* @category Database
|
||||
* @author EllisLab Dev Team
|
||||
* @link https://codeigniter.com/user_guide/database/
|
||||
* @link https://codeigniter.com/userguide3/database/
|
||||
*/
|
||||
abstract class CI_DB_forge {
|
||||
|
||||
@@ -556,10 +557,8 @@ abstract class CI_DB_forge {
|
||||
/**
|
||||
* Column Add
|
||||
*
|
||||
* @todo Remove deprecated $_after option in 3.1+
|
||||
* @param string $table Table name
|
||||
* @param array $field Column definition
|
||||
* @param string $_after Column for AFTER clause (deprecated)
|
||||
* @return bool
|
||||
*/
|
||||
public function add_column($table, $field, $_after = NULL)
|
||||
@@ -569,7 +568,6 @@ abstract class CI_DB_forge {
|
||||
|
||||
foreach (array_keys($field) as $k)
|
||||
{
|
||||
// Backwards-compatibility work-around for MySQL/CUBRID AFTER clause (remove in 3.1+)
|
||||
if ($_after !== NULL && is_array($field[$k]) && ! isset($field[$k]['after']))
|
||||
{
|
||||
$field[$k]['after'] = $_after;
|
||||
@@ -895,21 +893,33 @@ abstract class CI_DB_forge {
|
||||
return;
|
||||
}
|
||||
|
||||
if (array_key_exists('DEFAULT', $attributes))
|
||||
if ( ! array_key_exists('DEFAULT', $attributes))
|
||||
{
|
||||
if ($attributes['DEFAULT'] === NULL)
|
||||
{
|
||||
$field['default'] = empty($this->_null) ? '' : $this->_default.$this->_null;
|
||||
|
||||
// Override the NULL attribute if that's our default
|
||||
$attributes['NULL'] = TRUE;
|
||||
$field['null'] = empty($this->_null) ? '' : ' '.$this->_null;
|
||||
}
|
||||
else
|
||||
{
|
||||
$field['default'] = $this->_default.$this->db->escape($attributes['DEFAULT']);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if ($attributes['DEFAULT'] === NULL)
|
||||
{
|
||||
$field['default'] = empty($this->_null) ? '' : $this->_default.$this->_null;
|
||||
|
||||
// Override the NULL attribute if that's our default
|
||||
$attributes['NULL'] = TRUE;
|
||||
$field['null'] = empty($this->_null) ? '' : ' '.$this->_null;
|
||||
return;
|
||||
}
|
||||
|
||||
// White-list CURRENT_TIMESTAMP & similar (e.g. Oracle has stuff like SYSTIMESTAMP) defaults for date/time fields
|
||||
if (
|
||||
isset($attributes['TYPE'])
|
||||
&& (stripos($attributes['TYPE'], 'time') !== FALSE OR stripos($attributes['TYPE'], 'date') !== FALSE)
|
||||
&& (stripos($attributes['DEFAULT'], 'time') !== FALSE OR stripos($attributes['DEFAULT'], 'date') !== FALSE)
|
||||
)
|
||||
{
|
||||
$field['default'] = $this->_default.$attributes['DEFAULT'];
|
||||
return;
|
||||
}
|
||||
|
||||
$field['default'] = $this->_default.$this->db->escape($attributes['DEFAULT']);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user