Skip to content

UserTask

Base class for PhalconKit CLI tasks.

Extend this class for framework/application CLI tasks that need Phalcon's native task lifecycle plus PhalconKit injectable service annotations. The class does not add task behavior itself; action methods remain normal Phalcon CLI task methods.


Properties

cliDoc

public string $cliDoc

Methods

beforeExecuteRoute

Parse account options and pass only positional arguments to action methods.

public beforeExecuteRoute(): void

Bootstrap initially retains task flags in its variadic argument list. Replace those numeric entries with Docopt's parsed params so secret-input flags cannot be mistaken for the password itself. Named task options stay available through the dispatcher.


Inherited methods

beforeExecuteRoute

public beforeExecuteRoute(): void

helpAction

public helpAction(): void

mainAction

public mainAction(): ?array

afterExecuteRoute

Handle rest response automagically

public afterExecuteRoute(\Phalcon\Cli\Dispatcher $dispatcher): void

Parameters:

Parameter Type Description
$dispatcher \Phalcon\Cli\Dispatcher

Throws:


normalizeCliPayload

Normalize values before CLI output serializers see them.

protected normalizeCliPayload(mixed $payload): mixed

Phalcon message objects are useful inside the framework but are opaque for JSON automation. This helper recursively converts them into scalar arrays while leaving other payload values unchanged.

Parameters:

Parameter Type Description
$payload mixed

normalizeCliMessages

Normalize model messages through the base CLI task output contract.

protected normalizeCliMessages(iterable $messages, ?string $fallbackMessage = null): list<array{message: string, field: string|null, type: string|null, code: int|null}>
  • This method is abstract. Parameters:
Parameter Type Description
$messages iterable Messages returned by a model or resultset.
$fallbackMessage ?string

initialize

public initialize(): void

getDefinitions

Retrieves an array of class definitions mapped to their respective configurations.

public getDefinitions(): array<string,array<string,string|callable>>

createAction

public createAction(string $email, ?string $password = null): (array|int|mixed)[]

Parameters:

Parameter Type Description
$email string
$password ?string

roleAction

public roleAction(string $email, string $role): (array|int|mixed)[]

Parameters:

Parameter Type Description
$email string
$role string

passwordAction

public passwordAction(?string $username = null, ?string $password = null): array

Parameters:

Parameter Type Description
$username ?string
$password ?string

newUserEntity

Create a fresh configured user model for CLI create operations.

protected newUserEntity(): \PhalconKit\Models\Interfaces\UserInterface

Applications may map User::class to their own model implementation via the framework model map. This hook keeps create operations on that mapped class while still letting app tasks override the instantiation strategy when they need custom construction.


resolvePasswordInput

Resolve an explicitly requested stdin password without exposing it in argv.

protected resolvePasswordInput(?string $password): ?string

Existing positional/custom-model assignment remains supported. Stdin mode rejects empty input and conflicting password arguments before any writes.

Parameters:

Parameter Type Description
$password ?string

Throws:

When input is empty or ambiguous. - InvalidArgumentException


readPasswordFromStdin

Read CLI secret input; override only for an application input adapter.

protected readPasswordFromStdin(): string

getUserRoleAssignmentAlias

Resolve the application's direct user-role membership relationship.

protected getUserRoleAssignmentAlias(\PhalconKit\Models\Interfaces\UserInterface $user): string

Core's generated User defines UserRoleList. Application models may retain RoleNode; prefer that alias when present to preserve their save hooks. A missing relationship is a configuration error, never a successful role assignment. The model manager must have initialized the resolved user.

Parameters:

Parameter Type Description
$user \PhalconKit\Models\Interfaces\UserInterface

Throws:

When neither membership alias exists. - LogicException


addModelsPermissions

public addModelsPermissions(?array $tables = null): void

Parameters:

Parameter Type Description
$tables ?array