CLI Commands
Core ships these CLI tasks. Run them through your application entrypoint, for example ./bin/phalcon-kit cli user help. A task runs only when your CLI module has a task class with that name and the cli role grants the action: the App skeleton exposes user, scaffold, help, and its own cron. To expose another built-in task, add a class that extends it in your CLI module and grant it; see CLI Tasks.
namespace App\Modules\Cli\Tasks;
class CacheTask extends \PhalconKit\Modules\Cli\Tasks\CacheTask
{
}
'cli' => [
'components' => [
\App\Modules\Cli\Tasks\CacheTask::class => ['clear', 'help'],
],
],
Global Options
Options placed before cli apply to every task.
Phalcon Kit CLI
Usage:
phalcon-kit [--help | --quiet | --verbose] [--debug] [--format=<format>] <module> <task> [<action>] [<params>...]
phalcon-kit (-h | --help)
phalcon-kit (-v | --version)
phalcon-kit (-i | --info)
Options:
-h --help show this help message
-v --version print version number
-i --info print information
-q --quiet suppress output
-V --verbose increase verbosity
-d --debug enable debug mode
--format=<format> change output returned value format (json, serialize, dump, raw)
Tasks:
cache Clear, check, or delete cache entries
cron Run the scheduled task
database Optimize, truncate, drop, or seed configured tables
data-life-cycle Delete old data based on the data life cycle definitions
help Print the usage of a task
scaffold Generate models, interfaces, enums, and controllers from the schema
ts-scaffold Generate TypeScript definitions from the models
user Create users and manage passwords and roles
Run `phalcon-kit cli help <task>` for the actions and options of a task.
cache
Class: PhalconKit\Modules\Cli\Tasks\CacheTask
Usage:
phalcon-kit cli cache clear
phalcon-kit cli cache has <key>
phalcon-kit cli cache delete <key>
phalcon-kit cli cache delete-multiple [<key>...]
cron
Class: PhalconKit\Modules\Cli\Tasks\CronTask
Usage:
phalcon-kit cli cron <action> [<params> ...]
Actions:
main, hourly, daily, weekly, monthly Empty by default; override them in your application task
data-life-cycle
Class: PhalconKit\Modules\Cli\Tasks\DataLifeCycleTask
Usage:
phalcon-kit cli data-life-cycle <action> [<params> ...]
Actions:
main [<tables> ...] Apply the configured retention policies; table names limit the run
models [<tables> ...] Same as main, returning the per-table results without the `models` key
database
Class: PhalconKit\Modules\Cli\Tasks\DatabaseTask
Usage:
phalcon-kit cli database main
phalcon-kit cli database drop
phalcon-kit cli database truncate
phalcon-kit cli database fix-engine
phalcon-kit cli database optimize
phalcon-kit cli database analyze
phalcon-kit cli database insert
phalcon-kit cli database reset
Options:
main: fix-engine, optimize, analyze
drop: Drop deprecated tables
truncate: Truncate tables
fix-engine: Apply configured table engines
optimize: Run `OPTIMIZE TABLE`
analyze: Run `ANALYZE TABLE`
insert: Insert records
reset: Truncate configured tables, then insert configured records
Table lists and seed records come from application deployment configuration.
All operations are empty by default.
help
Class: PhalconKit\Modules\Cli\Tasks\HelpTask
Usage:
phalcon-kit cli help cache
phalcon-kit cli help cron
phalcon-kit cli help database
phalcon-kit cli help data-life-cycle
phalcon-kit cli help scaffold
phalcon-kit cli help ts-scaffold
phalcon-kit cli help user
scaffold
Class: PhalconKit\Modules\Cli\Tasks\ScaffoldTask
Usage:
phalcon-kit cli scaffold <action> [--force] [--directory=<directory>] [--namespace=<namespace>]
[--table=<table>] [--exclude=<exclude>] [--license=<license>]
[--src-dir=<src-dir>] [--controllers-dir=<controllers-dir>]
[--interfaces-dir=<interfaces-dir>] [--abstracts-dir=<abstracts-dir>]
[--models-dir=<models-dir>] [--enums-dir=<enums-dir>] [--tests-dir=<tests-dir>]
[--models-extend=<models-extend>] [--interfaces-extend=<interface-extend>]
[--controllers-extend=<controllers-extend>] [--tests-extend=<tests-extend>]
[--no-controllers] [--no-interfaces] [--no-model-interfaces] [--no-abstracts] [--no-models] [--no-enums] [--no-tests]
[--no-strict-types] [--no-license] [--no-comments] [--no-get-set-methods]
[--no-validations] [--no-relationships] [--no-column-map] [--no-set-source]
[--no-typings] [--granular-typings] [--add-raw-value-type] [--protected-properties]
[--boolean-columns=<table.column,...>]
Actions:
run Generate the outputs the --no-* options leave enabled for the selected tables
get-definitions <name> Return the class and file names generated for one table
Options:
--boolean-columns=<table.column,...> Explicit integer-backed boolean columns (no width/name inference)
--force Overwrite existing files
--table=<table> Comma seperated list of table to generate
--exclude=<table> Comma seperated list of table to exclude
--namespace=<namespace> Root namespace of the project (Default to "App")
--license=<license> Set your own license stamp (PHP Comment)
--directory=<directory> Root directory path to generate new files (Default to "./")
--src-dir=<src-dir> Source directory path to generate new files (Default to "src/")
--controllers-dir=<controllers-dir> Set your own controllers directory (Default: "Controllers")
--interfaces-dir=<interfaces-dir> Set your own interfaces directory (Default: "Interfaces")
--abstracts-dir=<abstracts-dir> Set your own abstract directory (Default: "Abstracts")
--models-dir=<models-dir> Set your own models directory (Default: "Models")
--enums-dir=<enums-dir> Set your own enums directory (Default: "Enums")
--tests-dir=<tests-dir> Set your own tests directory (Default: "Tests")
--models-extend=<models-extend> Extend models with this base class (Default: "\PhalconKit\Models\ModelAbstract")
--interfaces-extend=<interface-extend> Extend models interfaces with this base interface (Default: "\PhalconKit\Models\ModelInterface")
--controllers-extend=<controllers-extends> Extend controllers with this base class (Default: "\PhalconKit\Mvc\Controller\Rest")
--tests-extend=<tests-extends> Extend tests with this base class (Default: "\PhalconKit\Tests\Unit\AbstractUnit")
--no-controllers Do not generate controllers
--no-interfaces Do not generate interfaces
--no-model-interfaces Do not generate concrete model interfaces (keep app-owned ones)
--no-abstracts Do not generate abstracts
--no-models Do not generate models
--no-enums Do not generate enums
--no-tests Do not generate tests
--no-strict-types Do not generate declare(strict_types=1);
--no-license Do not generate license stamps
--no-comments Do not generate comments
--no-get-set-methods Do not generate getter and setter methods in models
--no-validations Do not generate default validations in models
--no-relationships Do not generate default relationships in models
--no-column-map Do not generate column map in models
--no-set-source Do not call setSource() in models
--no-typings Do not generate typings for properties in models
--granular-typings Force the properties to `mixed` in models
--add-raw-value-type Add the `RawValue` type to every property in models
--protected-properties Make the properties `protected` in models
ts-scaffold
Class: PhalconKit\Modules\Cli\Tasks\TsScaffoldTask
Usage:
phalcon-kit cli ts-scaffold <action> [<params>...] [--force] [--table=<table>] [--directory=<directory>] [--namespace=<namespace>]
Actions:
run Generate TypeScript models, interfaces, and services
generate-exports Generate the index export files
get-definitions <name> Return the TypeScript definitions for one model
Options:
--force Overwrite existing files, including models and services
--directory=<directory> SDK directory to generate into (Default: "./sdk/")
--table=<table> Comma separated list of tables to generate
--namespace=<namespace> Root namespace of the PHP models to read relations from (Default: "PhalconKit")
user
Class: PhalconKit\Modules\Cli\Tasks\UserTask
Usage:
phalcon-kit cli user <action> [--password-stdin] [<params> ...]
Actions:
create, password, role
Options:
--password-stdin Read the create/password secret from stdin instead of an argument.