Luminova is a fast, modular PHP framework designed for simplicity, performance, and modern web application development.
luminovang/luminova is a Laravel package for luminova is a fast, modular php framework designed for simplicity, performance, and modern web application development..
It currently has 8 GitHub stars and 71 downloads on Packagist (latest version 2.4.6).
Install it with composer require luminovang/luminova.
Discover more Laravel packages by luminovang
or browse all Laravel packages to compare alternatives.
Last updated
Luminova is a high-performance PHP framework designed for speed, efficiency, and developer productivity. It allows you to customize the framework to your project via the .env file, enabling only the features you need. This modular approach ensures optimal performance while giving you full control over template rendering modes and coding styles.
Within Luminova templates, View objects are accessible directly in your view files. You can call application methods and properties using $this or $self for stricter isolation mode.
Ready to try Luminova with your next projects? Explore the official documentation or join the community for tips, tutorials, and coding insights on our YouTube channel.
Luminova Skeleton This repository gives you everything you need to start a new Luminova project: a clean directory structure, essential configuration files, and the core bootstrapping setup.
Luminova comes packed with tools to speed up development while keeping your application organized and performant.
php novakit).ext-mbstring enabledext-json enabledpsr/http-client installedpsr/log installedext-json enabledCreate a new luminova project using Composer:
composer create-project luminovang/luminova my-project
Generate your application encryption key:
php novakit generate:key
To start PHP development server.
Run the following novakit command:
php novakit server
Visit: http://localhost:8000
To generate your website XML sitemap:
Use the below novakit command:
php novakit sitemap
app/
│── Controllers/ # Route handlers
│── Config/ # Application settings
│── Models/ # Application data models
│── Views/ # UI templates
│── Modules/ # HMVC modules (optional)
bootstrap/ # Core Helper Functions
bin/ # Novakit Console Commands
public/ # Front Controller (Framework entry point)
resources/
│── Views/ # MVC Template files
routes/ # Routes for Method-Based Routing
writeable/ # Private Storage, Logs, cache, Sessions, and Temp Files
system/ # Core Modules
│── plugins/ # ThirdParty Vendor Files
Luminova supports flexible routing using PHP Attributes or Method-Based Routing.
Enable attribute routing by setting the environment variable:
feature.route.attributes = true
Example:
namespace App\Controllers\Http;
use Luminova\Base\Controller;
use Luminova\Attributes\Route;
use Luminova\Attributes\Prefix;
#[Prefix('/(:base)', exclude: ['api'])]
class MainController extends Controller
{
#[Route('/', methods: ['GET'])]
public function index(): int
{
return $this->view('index');
}
}
Disable attribute routing by setting:
feature.route.attributes = false
Example:
namespace App\Controllers\Http;
use Luminova\Base\Controller;
class MainController extends Controller
{
public function index(): int
{
return $this->view('index');
}
}
Then register your route:
// /routes/web.php
$route->get('/', 'MainController::index');
Using a Callback Handler:
// /routes/web.php
use Luminova\Routing\Router;
use function Luminova\Funcs\view;
$router->get('/', function (): int {
return view('index');
});
return $this->view(
string $template, // Template name
array $options = [], // View options
string $type = View::HTML, // Template content type
int $status = 200 // HTTP status code
);
Alternative Using Template Property ($tpl):
return $this->tpl->view(
string $template, // Template name
string $type = View::HTML // Template content type
)->render(
array $options = [], // View options
int $status = 200 // HTTP status code
);
Global Helper Function:
You can render views outside of a controller using the view() helper:
use function Luminova\Funcs\view;
return view(
string $template, // Template name
array $options = [], // View options
string $type = View::HTML, // Template content type
int $status = 200 // HTTP status code
);
To learn more about Luminova, see the official documentation.
Q: My session works locally but not on production.
A: Update $sessionDomain in /app/Config/Session.php to match your production domain (e.g., '.' . APP_HOST). Also check Cookie.php configuration.
Q: CSS or images are broken on production.
A: Ensure app.environment.mood is set to production in your environment file to serve assets correctly.
If your contribution targets the core framework or its docs, use these repositories instead:
For this skeleton repository, pull requests should focus on:
We welcome your feedback! Contact us at [email protected] with suggestions, feature requests, or tutorial ideas.
Don’t forget to ⭐ Luminova on GitHub. Your support helps us continue improving the framework and adding new features.
Luminova is open-source and released under the MIT License.