NovaKit Commands
NovaKit Command Line Tool is a powerful tool provided by Luminova framework, for simplifying command-line operations and facilitating the development as well as building command-line applications. It offers a wide range of functionalities such as generating boilerplate code, scaffolds, templates, environment variables, sitemap, database operations, executing scripts, starting development server, and more.
List Available NovaKit Command
php novakit listBuilding CLI Tools in Luminova
Creating command-line tools in Luminova is straightforward, thanks to its intuitive routing system, which mirrors HTTP routing. This makes it easy to apply familiar logic to your CLI commands.
Command Controllers
To build a new command controller in Luminova:
Create Your Command Controller: Place your command controller classes in the
/app/Controllers/directory. Ensure these classes extendLuminova\Base\BaseCommand.Command Execution Format: To execute a command, use the following format:
php index.php <group-name> <command> <argument>The group name should come immediately after
php index.php, followed by the command name and any parameters. Arguments can be passed in any order after the command group name.
Examples
Example: Blog Command with Code-Based Routing
Define your commands in the routing configuration:
$router->group('blog', static function(Router $router){
$router->command('list', 'BlogCommand::listBlog');
});Example: Blog Command with Attribute-Based Routing
Add the Route attribute directly before the listBlog method:
#[Route('list', group: 'blog')]Using Arguments
You can specify arguments for your commands in different ways:
Using Options:
php index.php blog list --limit=3Corresponding controller method:
public function listBlog(): int { $limit = $this->getAnyOption('limit', 'l', 50); echo $limit; }Using Direct Arguments:
php index.php blog list limit=3Corresponding controller method:
public function listBlog(int $limit = 50): int { echo $limit; }
Controller Help
Print help information related to a command controller group.
php index.php <command-group> --helpPrint help for example blog command.
php index.php blog --helpCatch Exceptions
Exceptions are handled by the framework in the CLI. To catch exceptions, you can enable it in your environment file by setting throw.cli.exceptions to true. Alternatively, you can enable it temporarily for the current script execution by calling the following function before your script or within the controller's __construct or onCreate method:
setenv('throw.cli.exceptions', true);Novakit Help
To show help information related to novakit commands.
Print novakit help information.
php novakit --helpPrint help all novakit commands help information.
php novakit --help --allTo print help information related to a specific novakit command.
php novakit create:controller --helpGenerators
The generator commands allow you to easily generate a skeleton for a controller class, utils class, or a view file.
Utils Class
To create a utility class for your application use the below example command.The class will be saved in /app/Utils/
php novakit create:class "myClass" --extend "baseClassName" --implement "myClassInterface"Model Class
To create a database model class for your application use the below example command.The class will be saved in /app/Models/
php novakit create:model "myModel" Controllers
To create a new controller class for your application use the below example command.The class will be saved in /app/Controllers/
php novakit create:controller "PayStackController" --type "view"You can pass the type of
APIto extend\Luminova\Base\BaseControllerorviewto extend\Luminova\Base\BaseViewController.For command controller class extend and implement will ignore, use flag
--type "command"
View File
To create a utility class for your application use the below example command.The class will be saved in /resources/views/
php novakit create:view "blog" To create a view file in a subdirectory in
/resources/views/folder, use flag--dir "mySubDir"
Routing Context
To install a new routing context use the below example command.
php novakit context "test"'The above command will create a file in
/routes/directory and update your/public/index.phpwith a new context.To disable adding an error handler in
index.phpuse flag--no-errorNote: If the error handler is not disabled, you need to manually create the method name in your View errors class in
/app/Controllers/Errors/ViewErrors.php.
Sitemap
To generate your website sitemap use the below command.
php novakit generate:sitemapTo configure the sitemap domain and ignore list, it can be done here
/app/Config/Sitemap.php.
App Key
To generate your application encryption key use the below command.
php novakit generate:keyIf you wish to generate without saving the key to env file, use flag
--no-save.
Add/Update Env Key
To add new or update value to your env file use the below command.
php novakit env:add --key="my_new_key" --value="my key value"If you wish to generate without saving the key to env file, use flag
--no-save.
Remove Env Key
To remove key from your env file use the below command.
php novakit env:remove --key="my_old_key"Build Project
To package your application for publishing, use the below command to archive the project files required for production.
php novakit build:project --type zip