Skip to content

3.5.6

Choose a tag to compare

@peterujah peterujah released this 07 May 20:45
· 40 commits to main since this release

Full Changelog: 3.5.5...3.5.6

New Features

Introduced in Version 3.5.6

Command Group Attribute

Added support for the Group attribute, which allows CLI controllers to define a command group at the class level.

Routing System Interface

The routing system now implements Luminova\Interface\RouterInterface, allowing full replacement with a custom routing implementation.

Application Base Class

New method getRouterInstance() added to retrieve router instance for application routing, making it easier to replace the routing system.

Crypter Utility Class

New methods added for validating cryptographic key types and pairs:

  • isPrivateKey() – Validates whether a given string is a private key.
  • isPublicKey() – Validates whether a given string is a public key.
  • isKeyMatch() – Verifies if a private and public key pair matches.

Command Utility Class (Terminal)

The Terminal class now includes new methods for retrieving system details and supporting CLI-based authentication:

  • systemInfo() – Returns structured system and terminal information.
  • getSystemId() – Generates a consistent, unique system identifier suitable for CLI authentication.
  • getTerminalName() – Retrieves the name of the current terminal in use.
  • getSystemModel() – Returns the device or system model (e.g., MacBook Pro, Dell XPS).
  • getPid() – Returns the parent process ID (PPID) for the current CLI session.
  • about() – Displays a formatted table of system and environment information. Also via command php novakit --system-info.
  • whoami() – Returns the current system user executing the CLI script.

Optimizations

Improved in Version 3.5.6

Attribute Parser

Replaced reflection-based parsing with PHPToken to enhance performance and reduce overhead.

Boot Autoload

Updated HTTP method spoofing to rely on X-HTTP-Method-Override and restrict it to POST requests, aligning with RFC 7231.

Response Renderer

Enhanced response rendering for better accuracy and output consistency.

Uploaded File Configuration

Replaced the use of stdClass with a dedicated Luminova\Http\FileConfig configuration object for better structure and clarity.


Renamed Components

Changes in Naming Since Version 3.5.6

  • Luminova\Application\Foundation → Luminova\Luminova
  • Luminova\Command\Console → Luminova\Command\Novakit
  • Luminova\Command\NovaKit\* → Luminova\Command\Consoles\*
  • App\Controllers\Errors\ViewError → App\Errors\Controllers\ErrorController
  • /resources/Views/server_errors/* → /app/Errors/Defaults/*

Deprecated

Marked as Deprecated in Version 3.5.6

Command Handler (Terminal)

  • explain() – Deprecated. Use parse() instead.

Removed

Legacy Methods Removed in Version 3.5.6

The following deprecated methods have been removed:

  • Luminova\Http\File::getMimeFromTemp() – Use getMimeFromFile() instead.
  • Luminova\Routing\Router::before() – Use guard() instead.
  • Luminova\Security\Crypter::verify() – Use isPassword() instead.
  • Luminova\Sessions\Session::toExport() – Use getResult() instead.
  • Luminova\Sessions\Session::ssid() – Use getToken() instead.
  • Luminova\Sessions\Session::ssDate() – Use getDatetime() instead.
  • Luminova\Command\Terminal::color() – Use Luminova\Command\Utils\Color::apply(...) or Color::style(...) instead.

View All Changes