Luminova Framework

v3.2.6 Full Changelog

ActionDate
Version NameSweetie
Published2023-09-01 13:54:12
Updated2024-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 cURL network 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 log command for managing error logs.
  • View Content Caching: utilizes app.version to 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 in method and added new arguments for the insert method.
  • \Luminova\Exceptions\AppException: Improved error handling with support for string error codes and a new getName method.
  • 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 Guzzle client.
  • 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 unknown novakit command is run.
  • Luminova\Command\Terminal: Optimized methods, resolved issues with watcher and progress, and introduced spinner and terminate methods, along with enhancements to other methods.

Changes & Renames


Deprecated or Removed

  • The method Luminova\Http\Request->isCommand() is now deprecated. Use the global function is_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 = '';
}