v3.2.6 Full Changelog
| Action | Date |
|---|---|
| Version Name | Sweetie |
| Published | 2023-09-01 13:54:12 |
| Updated | 2024-09-01 13:54:12 |
General
Luminova 3.2.6 includes significant updates that enhance performance and error handling mechanisms, as well as improved debugging capabilities with debug tracing for all error occurrences.
This update also features enhanced official documentation, with clearer titles and detailed examples of usage to better illustrate features and implementations. Additionally, we've optimized method and parameter descriptions for improved visibility in IDEs.
New Features
- Luminova\Storages\Stream: A stream handler for efficiently reading and writing large data volumes, integrated with the latest
cURLnetwork client response updates. - Luminova\Config\Enums\ErrorCodes: A comprehensive list of exceptions and error codes used throughout the framework for various error handling scenarios.
- NovaKit Command: Introduction of the
novakit logcommand for managing error logs. - View Content Caching: utilizes
app.versionto store and retrieve page caching. array_extend_default:A global helper function, it allows you to extend an array retaining the default values, it only apply new element that doesn't exist in default.
Optimizations & Updates
- Luminova\Debugger\Profiling: Enhanced performance profiling now includes total database query execution time, command line performance profiling, and API performance logging.
- Luminova\Datable\Builder: Optimized performance, introduced new cache management methods, and replaced expired cache content instead of deleting it. Fixed issues with the
inmethod and added new arguments for theinsertmethod. - \Luminova\Exceptions\AppException: Improved error handling with support for string error codes and a new
getNamemethod. - Luminova\Seo\Sitemap: Optimized to support URL prefix definitions to limit scanning.
- Luminova\Seo\Schema: Enhanced scheme builder and configuration optimizations.
- Luminova\Http\Network: Improved network operations and implemented necessary interfaces for the
Guzzleclient. - Luminova\Http\Client\Curl: Optimized for various configurations, including multipart uploads, header callbacks, and large stream handling.
- Luminova\Http\Message\Response: Enhanced response handling with new methods, such as
getBody, to return a stream object. Command Executor: Improved command executor now suggests commands when an unknownnovakitcommand is run.- Luminova\Command\Terminal: Optimized methods, resolved issues with
watcherandprogress, and introducedspinnerandterminatemethods, along with enhancements to other methods.
Changes & Renames
Luminova\Base\BaseApplicationrenamed to Luminova\Core\CoreApplication to indicate it can only be extended once forApp\Application.Luminova\Base\BaseDatabaserenamed to Luminova\Core\CoreDatabase for single inheritance inApp\Config\Database.Luminova\Base\BaseCronrenamed to Luminova\Core\CoreCronTasks for single inheritance inApp\Config\Cron.Luminova\Base\BaseFunctionrenamed to Luminova\Core\CoreFunction for single inheritance inApp\Utils\Functions.Luminova\Base\BaseServicesrenamed to Luminova\Core\CoreServices for single inheritance inApp\Config\Services.Luminova\Command\TextUtilrenamed to Luminova\Command\Utils\Text for better code organization.Luminova\Command\Colorsrenamed to Luminova\Command\Utils\Color for better code organization.Luminova\Interface\HttpClientInterfacerenamed to \Luminova\Interface\NetworkClientInterface.
Deprecated or Removed
- The method
Luminova\Http\Request->isCommand()is now deprecated. Use the global functionis_command()instead.
To-Dos
1. Update Class Inheritance
In your application configuration, change all classes that extend from \Luminova\Base\* to extend from \Luminova\Core\*.
Application
// /app/Application.php
<?php
namespace App;
use Luminova\Core\CoreApplication;
class Application extends CoreApplication
{
//...
}Services
// /app/Config/Services.php
<?php
namespace App\Config;
use Luminova\Core\CoreServices;
class Services extends CoreServices
{
//...
}Database
// /app/Config/Database.php
<?php
namespace App\Config;
use Luminova\Core\CoreDatabase;
class Database extends CoreDatabase
{
//...
}Functions
// /app/Utils/Functions.php
<?php
namespace App\Utils;
use Luminova\Core\CoreFunction;
class Functions extends CoreFunction
{
//...
}Cron Tasks
// /app/Config/Cron.php
<?php
namespace App\Config;
use \Luminova\Core\CoreCronTasks;
final class Cron extends CoreCronTasks
{
//...
}2. Add scanUrlPrefix to Sitemap Configuration
In your application sitemap configuration, add a new variable named $scanUrlPrefix.
// /app/Config/Sitemap.php
<?php
namespace App\Config;
use Luminova\Base\BaseConfig;
final class Sitemap extends BaseConfig
{
public string $scanUrlPrefix = '';
}