luminovang / luminova
PHP Luminova framework, simple yet powerful framework design for speed
Installs: 39
Dependents: 0
Suggesters: 1
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 1
Type:project
Requires
- php: ^8.0
- ext-json: *
- ext-mbstring: *
- luminovang/framework: ^3.0
- psr/log: ^1.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- nikic/php-parser: ^4.17.1
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10.2
- phpunit/phpunit: ^9.1
- psr/cache: ^3.0
- psr/http-client: ^1.0
- psr/simple-cache: ^3.0
- rector/rector: 0.18.3
Suggests
- ext-curl: Needed if you use CURLRequest class
- ext-exif: Needed if you run Image class tests
- ext-fileinfo: Needed to improves mime type detection for files
- ext-gd: Needed if you use Image class GDHandler
- ext-imagick: Needed if you use Image class ImageMagickHandler
- ext-intl: Needed if you use Local
- ext-memcache: Needed if you use Cache class MemcachedHandler with Memcache
- ext-memcached: Needed if you use Cache class MemcachedHandler with Memcached
- ext-mysqli: Needed if you use MySQL
- guzzlehttp/guzzle: Needed to use Guzzle http client
- league/flysystem: Needed if you use FileSystem cloud storages
- nanoblocktech/psr-cache: If you need to use psr-cache or psr-simple-cache
- peterujah/nano-image: If you want to use outputImage fom file delivery class, for image resizing.
- peterujah/php-search-controller: If you want to use model searching doSearch
- phpmailer/phpmailer: Needed if you want to use PHPMailer client
- psr/http-client: Needed to use Guzzle http client
- psr/log: Needed to use PSR logging
- smarty/smarty: Needed if you want to use Smarty template engine
- swiftmailer/swiftmailer: Needed if you want use SwiftMailer client
- twig/twig: Needed if you want to use Twig template engine
This package is auto-updated.
Last update: 2024-11-23 00:37:18 UTC
README
About Luminova!
Luminova is a PHP framework built for speed and efficiency, designed to enhance your existing coding skills. At Luminova, we prioritize performance by offering feature customization through the env
file. This ensures the framework includes only what's needed for your project, based on the features you enable. This approach allows you to enable or disable features as well as customizing your preferred template rendering mode and coding style.
Luminova, provide access to the template View
object within the view files, allowing you to call template methods and properties using $this
keyword within template files. This can be disabled if you prefer your views to be rendered in isolation, disabling it will allow you to access exported application classes using custom keyword $self
.
Ready to light up your projects? Dive into our official documentation. For more tips, tricks, and some coding fun, check out our YouTube channel.
Composer Installation
Install luminova via Composer.
composer create-project luminovang/luminova my-project
Start Development Server
To start the PHP
development server, run the following NovaKit
command.
php novakit server
Sitemap Generator
To generate your website sitemap use the below NovaKit
command.
php novakit generate:sitemap
To learn more about NovaKit commands read the novakit documentation.
Routing
Luminova support flexible routing implementation using Attributes
or Router
methods.
Define your route using PHP8
attributes:*
#[Route('/', methods: ['GET'])] public function index(): int { return $this->view('index'); }
Or define your route using code-based routing:
<?php $router->get('/', 'YourController::index');
What's There For Me?
Here we can brief you on the basic features you can expect in Luminova. There's a lot more than what is written here. As Linus Torvalds said, "Talk is cheap. Show me the code."
- Database Builder: A powerful Object Relational Mapping (ORM) tool that organizes CRUD operations and simplifies database interactions.
- MVC & HMVC Architecture: Adheres to the Model-View-Controller and Hierarchical Model-View-Controller implementation.
- Flexible HTTP Routing: Dynamic and fast routing implementation with a clear separation of concerns.
- Templating: Optimized native PHP templating with additional inheritance and caching features. You can also use
Twig
orSmarty
template engines. - Error Handling: Comprehensive error handling ensures that no errors go unnoticed, including non-fatal inline errors.
- Session Management: Easily manage user login sessions without additional implementation.
- CLI Routing: Dynamic routing for CLI implementations similar to HTTP routing methods.
- Cloud Storage: Supports various cloud storage solutions like AWS, Azure, Google Cloud, and more.
- File Management: Deliver files to the browser from any location with temporary or permanent URLs to access private files.
- Sitemap Generator: Generate website sitemaps using the
NovaKit
command. - Schema Object: Support for generating schema objects for website pages.
- Command Line Tool: Full support for implementing CLI tools, with everything you need available.
- AI Models: Integrate or extend AI features into your application.
- Database: A flexible database system that supports instant failover to a backup database without user interruption.
- Security: Various security implementations to secure your application and user information.
- Request Handling: Secure handling of incoming and outgoing HTTP requests.
- Email: Send emails anywhere, with support for sending entire view content as the email body.
- Translation: Create translations for your application using our translation class.
- Encryption: Support for different encryption handlers and methods.
- Services: Define classes that can be shared and discovered anywhere in your codebase, with support for serialization and class object caching.
Quick Tips
Q: My session works on the development server but not on the production server.
- A: In production, update the
$sessionDomain
in/app/Config/Session.php
to your actual production domain. A quick fix is to use'.' . APP_HOST
. Also, don't forget to update theCookie.php
configuration accordingly.
Q: My CSS and images are broken on the production server.
- A: Make sure you set the
app.environment.mood
key toproduction
in your environment file when deploying to production. This small step ensures your assets are served correctly.
Something Missing?
Your feedback is highly appreciated! Drop us a line at peter@luminova.ng. Let us know what we can add to enhance your experience with Luminova. You can also recommend tutorials for our YouTube channel to help you understand and use Luminova better.
Most importantly, don't forget to rate Luminova on GitHub. Your rating is like fuel, helping to illuminate our motivation to add more features and make Luminova even better known and more powerful.