Luminova Framework

Full Changelog Starting from Version 3.6.6 and Above

NameDescription
Version Code3.6.7
Version NameHermes
Published2024-08-05 09:33:59
Updated2025-08-05 09:33:59

Luminova 3.6.6+ Update Overview

Version 3.6.6 includes major performance improvements and new features focused on background task processing and webhook support.


New Features

Added in Version 3.6.7

Core Application abstract Class

Introduced a new static method: onShutdown().This method acts as a hook that runs when the application terminates due to a fatal error or explicit shutdown. It allows the application to inspect the error and choose to:

  • Return false to suppress default framework handling.
  • Return true to let the framework handle the error normally.

Example:

// /app/Application.php
namespace App;

use Luminova\Core\CoreApplication;

class Application extends CoreApplication
{
  public static function onShutdown(array $error): bool 
  {
    return true;
    // Or handle shutdown and return false
  }
}

This gives developers more control over graceful shutdowns in critical situations.


Added in Version 3.6.6

Background Task Queue System

A built-in system for running tasks in the background. This helps improve app responsiveness by offloading heavy tasks to a queue.

Highlights:

  • Queue Execution: Tasks can be executed in the background using CLI commands.
  • Command Support: Manage and run tasks with php novakit task:* commands.

Included Classes and Helpers:

  • Luminova\Models\TaskTask model class used to define task details when managing task responses.

  • App\Tasks\TaskQueueDefault task queue controller located at /app/Tasks/TaskQueue.php.

  • Luminova\Interface\QueueableInterfaceOptional interface for queueable tasks. Supports invokable style (__invoke method).

  • novakit CLI SupportIncludes CLI commands for listing, running, or managing tasks.Example: php novakit task:list


Webhook Helper Class

A utility class for sending and receiving webhook requests.

Key Features:

  • Send payloads with optional signature verification.
  • Receive incoming webhook requests.
  • Automatically verify and decode received payloads.

Changes

Improvements in Version 3.6.6

Global Functions Now Namespaced

Global helper functions are now moved under the Luminova\Funcs\* namespace. This change helps avoid naming conflicts with core PHP functions and improves performance by removing the need for function_exists checks.

How to Use:

You can now call global functions in two ways:

// Option 1: Import multiple functions from the namespace
use function Luminova\Funcs\{response, root};

response(...)->json(...);
root('path', 'to/text.txt');

// Option 2: Use fully qualified names
Luminova\Funcs\response(...)->json(...);
Luminova\Funcs\root('path', 'to/text.txt');

Affected Functions by Category

Core App & Environment

Utility & Logic Helpers

URL & Routing Helpers

Data Helpers

File & Content Helpers

Template & Text Helpers


Optimization

Optimized in Version 3.6.7

Global Helper Functions

Improved performance and flexibility of global functions.

  • import() now supports resolving virtual paths using predefined URI-style schemes. This simplifies file inclusion across common system directories.

Examples:

import('app:Config/settings.php');
import('view:layouts/header.php');
import('package:brick/math/src/BigNumber.php');

Supported Schemes:

SchemeResolves To
approot/app/*
packageroot/system/plugins/*
systemroot/system/*
viewroot/resources/Views/*
publicroot/public/*
writeableroot/writeable/*
librariesroot/libraries/*
resourcesroot/resources/*
routesroot/routes/*
bootstraproot/bootstrap/*
binroot/bin/*
noderoot/node/*

This update enhances code readability and keeps file paths consistent across modules.You can still pass a full file path if preferred. The scheme prefix is entirely optional.


Optimized in Version 3.6.6

Novakit Command Line Improvements

The Novakit CLI tool has been optimized for better usability and flexibility.

Affected Commands:

  • helps CommandImproved how help information is displayed.You can now view help for grouped commands:

    • php novakit task -h – shows help for all task group commands.
    • php novakit task:run -h – shows help specifically for the task:run command.
  • list CommandNow supports optional filtering using:

    • --command=task
    • -c=taskThese options limit the output to commands related to the specified group.

Additional Optimizations

  • Global Functions

    • rootNow supports a second parameter $filename to build a full path.Example:
    root('/public/', 'robots.txt');
    // Returns: /path/to/project/public/robots.txt
    • importAdded support for extra options:
      • $throw – whether to throw an exception if the file isn't found.
      • $once – use _once variants like include_once or require_once.
      • $require – switch between include and require.

    This gives you full control over how files are included.

    • get_columnWhen working with objects, this function now returns an object instead of an array, making it easier to chain or access directly.

Fixes

Deprecated Fixes in Version 3.6.6

Command Handler (Terminal)

  • tableFixed an issue where passing 0 as the column value caused blank output. Building table in CLI now properly handles zero values.

Removed

Legacy Methods Removed in Version 3.6.6

The following previously deprecated methods have now been removed:

  • Luminova\Command\Terminal::explain()Deprecated since version 3.5.6.Use: perse() instead.

  • Luminova\Database\Builder->caching()Deprecated since version 3.5.6.Use: cacheable() instead.


ToDo

Applies from Version 3.6.6+

All references to global functions should now use their new namespaced versions.

Update Example:

Before:

root(...);

After:

use function Luminova\Funcs\root;

root(...);

// OR 

Luminova\Funcs\root(...);

If you’re calling multiple functions, you can import them like this:

use function Luminova\Funcs\{root, response, uuid};