Full Changelog Starting from Version 3.6.6 and Above
Name | Description |
---|---|
Version Code | 3.6.7 |
Version Name | Hermes |
Published | 2024-08-05 09:33:59 |
Updated | 2025-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\Task
Task model class used to define task details when managing task responses.App\Tasks\TaskQueue
Default task queue controller located at/app/Tasks/TaskQueue.php
.Luminova\Interface\QueueableInterface
Optional 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
app
browser
configs
factory
import
import_lib
is_command
is_dev_server
lang
locale
logger
remove_service
request
response
root
service
shared
uuid
ip_address
cookie
session
which_php
status_code
http_status_header
Utility & Logic Helpers
camel_case
class_exists_cached
function_exists_cached
get_class_name
has_uppercase
is_associative
is_blob
is_empty
is_list
is_nested
is_platform
is_tor
is_utf8
kebab_case
pascal_case
string_length
uppercase_words
validate
URL & Routing Helpers
Data Helpers
get_column
object_column
to_array
to_object
array_extend_default
array_merge_recursive_distinct
array_merge_recursive_replace
array_merge_result
list_in_array
list_to_array
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:
Scheme | Resolves To |
---|---|
app | root/app/* |
package | root/system/plugins/* |
system | root/system/* |
view | root/resources/Views/* |
public | root/public/* |
writeable | root/writeable/* |
libraries | root/libraries/* |
resources | root/resources/* |
routes | root/routes/* |
bootstrap | root/bootstrap/* |
bin | root/bin/* |
node | root/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 alltask
group commands.php novakit task:run -h
– shows help specifically for thetask:run
command.
list
CommandNow supports optional filtering using:--command=task
-c=task
These options limit the output to commands related to the specified group.
Additional Optimizations
root
Now supports a second parameter$filename
to build a full path.Example:
root('/public/', 'robots.txt'); // Returns: /path/to/project/public/robots.txt
import
Added support for extra options:$throw
– whether to throw an exception if the file isn't found.
$once
– use_once
variants likeinclude_once
orrequire_once
.
$require
– switch betweeninclude
andrequire
.
This gives you full control over how files are included.
get_column
When 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)
table
Fixed an issue where passing0
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};