Fix for basic query detection: Simeple starts with SELECT/WITH/SHOW INSERT INTO/UPDATE/DELETE FROM UPDATE Above does no complex query detection, just if the string starts with this Fix form table detection for primary key auto set trial.
205 lines
4.9 KiB
Markdown
205 lines
4.9 KiB
Markdown
# Upgrade to Version 6
|
|
|
|
* remove old `lib/CoreLibs` and copy the new over
|
|
* copy `config/config.php`
|
|
* install composer if not installed `composer init` and `composer install`
|
|
* update composer.json
|
|
|
|
```json
|
|
"autoload": {
|
|
"classmap": [
|
|
"lib/"
|
|
]
|
|
},
|
|
```
|
|
|
|
Run to update autoloader list
|
|
|
|
```sh
|
|
composer dump-autoload
|
|
```
|
|
|
|
* copy `includes/edit_base.inc`
|
|
* add session start in the top header block where the `header()` calls are
|
|
|
|
```php
|
|
// start session
|
|
CoreLibs\Create\Session::startSession();
|
|
```
|
|
|
|
* update all header calls if needed to add new log type call
|
|
|
|
```php
|
|
// create logger
|
|
$log = new CoreLibs\Debug\Logging([
|
|
'log_folder' => BASE . LOG,
|
|
'file_id' => LOG_FILE_ID,
|
|
'print_file_date' => true,
|
|
'debug_all' => $DEBUG_ALL ?? false,
|
|
'echo_all' => $ECHO_ALL ?? false,
|
|
'print_all' => $PRINT_ALL ?? false,
|
|
]);
|
|
```
|
|
|
|
* add a db class
|
|
|
|
```php
|
|
// db config with logger
|
|
$db = new CoreLibs\DB\IO(DB_CONFIG, $log);
|
|
```
|
|
|
|
* login class needs to have db and logger added
|
|
|
|
```php
|
|
// login & page access check
|
|
$login = new CoreLibs\ACL\Login($db, $log);
|
|
```
|
|
|
|
* update language class
|
|
|
|
```php
|
|
// pre auto detect language after login
|
|
$locale = \CoreLibs\Language\GetLocale::setLocale();
|
|
// set lang and pass to smarty/backend
|
|
$l10n = new \CoreLibs\Language\L10n(
|
|
$locale['locale'],
|
|
$locale['domain'],
|
|
$locale['path'],
|
|
);
|
|
```
|
|
|
|
* smarty needs language
|
|
|
|
```php
|
|
$smarty = new CoreLibs\Template\SmartyExtend($l10n, $locale);
|
|
```
|
|
|
|
* admin backend also needs logger
|
|
|
|
```php
|
|
$cms = new CoreLibs\Admin\Backend($db, $log, $l10n, $locale);
|
|
```
|
|
|
|
* update and `$cms` or similar calls so db is in `$cms->db->...` and log are in `$cms->log->...`
|
|
* update all `config.*.php` files where needed
|
|
* check config.master.php for `BASE_NAME` and `G_TITLE` and set them in the `.env` file so the `config.master.php` can be copied as os
|
|
* If not doable, see changed below in `config.master.php` must remove old auto loder and `FLASH` constant at least
|
|
|
|
**REMOVE:**
|
|
|
|
```php
|
|
/************* AUTO LOADER *******************/
|
|
// read auto loader
|
|
require BASE . LIB . 'autoloader.php';
|
|
```
|
|
|
|
**UPDATE:**
|
|
|
|
```php
|
|
// po langs [DEPRECAED: use LOCALE]
|
|
define('LANG', 'lang' . DIRECTORY_SEPARATOR);
|
|
// po locale file
|
|
define('LOCALE', 'locale' . DIRECTORY_SEPARATOR);
|
|
```
|
|
|
|
```php
|
|
// SSL host name
|
|
// define('SSL_HOST', $_ENV['SSL_HOST'] ?? '');
|
|
```
|
|
|
|
```php
|
|
// define full regex
|
|
define('PASSWORD_REGEX', "/^"
|
|
. (defined('PASSWORD_LOWER') ? PASSWORD_LOWER : '')
|
|
. (defined('PASSWORD_UPPER') ? PASSWORD_UPPER : '')
|
|
. (defined('PASSWORD_NUMBER') ? PASSWORD_NUMBER : '')
|
|
. (defined('PASSWORD_SPECIAL') ? PASSWORD_SPECIAL : '')
|
|
. "[A-Za-z\d" . PASSWORD_SPECIAL_RANGE . "]{" . PASSWORD_MIN_LENGTH . "," . PASSWORD_MAX_LENGTH . "}$/");
|
|
```
|
|
|
|
```php
|
|
/************* LAYOUT WIDTHS *************/
|
|
define('PAGE_WIDTH', '100%');
|
|
define('CONTENT_WIDTH', '100%');
|
|
```
|
|
|
|
```php
|
|
/************* OVERALL CONTROL NAMES *************/
|
|
// BELOW has HAS to be changed
|
|
// base name for all session and log names
|
|
// only alphanumeric characters, strip all others
|
|
define('BASE_NAME', preg_replace('/[^A-Za-z0-9]/', '', $_ENV['BASE_NAME'] ?? ''));
|
|
```
|
|
|
|
```php
|
|
/************* LANGUAGE / ENCODING *******/
|
|
// default lang + encoding
|
|
define('DEFAULT_LOCALE', 'en_US.UTF-8');
|
|
// default web page encoding setting
|
|
define('DEFAULT_ENCODING', 'UTF-8');
|
|
```
|
|
|
|
```php
|
|
// BAIL ON MISSING DB CONFIG:
|
|
// we have either no db selction for this host but have db config entries
|
|
// or we have a db selection but no db config as array or empty
|
|
// or we have a selection but no matching db config entry
|
|
if (
|
|
(!isset($SITE_CONFIG[HOST_NAME]['db_host']) && count($DB_CONFIG)) ||
|
|
(isset($SITE_CONFIG[HOST_NAME]['db_host']) &&
|
|
// missing DB CONFIG
|
|
((is_array($DB_CONFIG) && !count($DB_CONFIG)) ||
|
|
!is_array($DB_CONFIG) ||
|
|
// has DB CONFIG but no match
|
|
empty($DB_CONFIG[$SITE_CONFIG[HOST_NAME]['db_host']]))
|
|
)
|
|
) {
|
|
echo 'No matching DB config found for: "' . HOST_NAME . '". Contact Administrator';
|
|
exit;
|
|
}
|
|
```
|
|
|
|
```php
|
|
// remove SITE_LANG
|
|
define('SITE_LOCALE', $SITE_CONFIG[HOST_NAME]['site_locale'] ?? DEFAULT_LOCALE);
|
|
define('SITE_ENCODING', $SITE_CONFIG[HOST_NAME]['site_encoding'] ?? DEFAULT_ENCODING);
|
|
```
|
|
|
|
```php
|
|
/************* GENERAL PAGE TITLE ********/
|
|
define('G_TITLE', $_ENV['G_TITLE'] ?? '');
|
|
```
|
|
|
|
* move all login passweords into the `.env` file in the `configs/` folder
|
|
in the `.env` file
|
|
|
|
```sql
|
|
DB_NAME.TEST=some_database
|
|
...
|
|
```
|
|
|
|
In the config then
|
|
|
|
```php
|
|
'db_name' => $_ENV['DB_NAME.TEST'] ?? '',
|
|
```
|
|
|
|
* config.host.php update
|
|
must add site_locale (site_lang + site_encoding)
|
|
remove site_lang
|
|
|
|
```php
|
|
// lang + encoding
|
|
'site_locale' => 'en_US.UTF-8',
|
|
// site language
|
|
'site_encoding' => 'UTF-8',
|
|
```
|
|
|
|
* copy `layout/admin/javascript/edit.jq.js`
|
|
* check other javacsript files if needed (`edit.jq.js`)
|
|
|
|
## IMPORTANT NOTE
|
|
|
|
If no upgrade to V5 was done all calls that refered to `CoreLibs\Basic` will now fail and no longer be warned as deprected
|
|
See the old file for all methods and where they have moved
|