mirror of
https://github.com/yiisoft/yii2.git
synced 2025-12-14 02:11:40 +08:00
Add generics for all controllers (#20675)
This commit is contained in:
@@ -9,11 +9,13 @@ namespace yii\console\controllers;
|
||||
|
||||
use Yii;
|
||||
use yii\base\Application;
|
||||
use yii\base\Module;
|
||||
use yii\console\Controller;
|
||||
use yii\console\Exception;
|
||||
use yii\console\ExitCode;
|
||||
use yii\helpers\Console;
|
||||
use yii\helpers\Inflector;
|
||||
use yii\console\Application as ConsoleApplication;
|
||||
|
||||
/**
|
||||
* Provides help information about console commands.
|
||||
@@ -35,6 +37,9 @@ use yii\helpers\Inflector;
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @since 2.0
|
||||
*
|
||||
* @template T of ConsoleApplication
|
||||
* @extends Controller<T>
|
||||
*/
|
||||
class HelpController extends Controller
|
||||
{
|
||||
@@ -80,7 +85,10 @@ class HelpController extends Controller
|
||||
{
|
||||
foreach ($this->getCommandDescriptions() as $command => $description) {
|
||||
$result = Yii::$app->createController($command);
|
||||
/** @var Controller $controller */
|
||||
/**
|
||||
* @var Controller $controller
|
||||
* @phpstan-var Controller<Application> $controller
|
||||
*/
|
||||
list($controller, $actionID) = $result;
|
||||
$actions = $this->getActions($controller);
|
||||
$prefix = $controller->getUniqueId();
|
||||
@@ -108,7 +116,10 @@ class HelpController extends Controller
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var Controller $controller */
|
||||
/**
|
||||
* @var Controller $controller
|
||||
* @phpstan-var Controller<Application> $controller
|
||||
*/
|
||||
list($controller, $actionID) = $result;
|
||||
$action = $controller->createAction($actionID);
|
||||
if ($action === null) {
|
||||
@@ -141,7 +152,10 @@ class HelpController extends Controller
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var Controller $controller */
|
||||
/**
|
||||
* @var Controller $controller
|
||||
* @phpstan-var Controller<Application> $controller
|
||||
*/
|
||||
list($controller, $actionID) = $result;
|
||||
$action = $controller->createAction($actionID);
|
||||
if ($action === null) {
|
||||
@@ -179,6 +193,10 @@ class HelpController extends Controller
|
||||
if ($result === false || !$result[0] instanceof Controller) {
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* @var Controller $controller
|
||||
* @phpstan-var Controller<Application> $controller
|
||||
*/
|
||||
list($controller, $actionID) = $result;
|
||||
$actions = $this->getActions($controller);
|
||||
return $actions !== [];
|
||||
@@ -194,7 +212,10 @@ class HelpController extends Controller
|
||||
$descriptions = [];
|
||||
foreach ($this->getCommands() as $command) {
|
||||
$result = Yii::$app->createController($command);
|
||||
/** @var Controller $controller */
|
||||
/**
|
||||
* @var Controller $controller
|
||||
* @phpstan-var Controller<Application> $controller
|
||||
*/
|
||||
list($controller, $actionID) = $result;
|
||||
$descriptions[$command] = $controller->getHelpSummary();
|
||||
}
|
||||
@@ -206,6 +227,9 @@ class HelpController extends Controller
|
||||
* Returns all available actions of the specified controller.
|
||||
* @param Controller $controller the controller instance
|
||||
* @return array all available action IDs.
|
||||
*
|
||||
* @phpstan-param Controller<Module> $controller
|
||||
* @psalm-param Controller<Module> $controller
|
||||
*/
|
||||
public function getActions($controller)
|
||||
{
|
||||
@@ -224,7 +248,7 @@ class HelpController extends Controller
|
||||
|
||||
/**
|
||||
* Returns available commands of a specified module.
|
||||
* @param \yii\base\Module $module the module instance
|
||||
* @param Module $module the module instance
|
||||
* @return array the available command names
|
||||
*/
|
||||
protected function getModuleCommands($module)
|
||||
@@ -303,7 +327,10 @@ class HelpController extends Controller
|
||||
$maxLength = 0;
|
||||
foreach ($commands as $command => $description) {
|
||||
$result = Yii::$app->createController($command);
|
||||
/** @var Controller $controller */
|
||||
/**
|
||||
* @var Controller $controller
|
||||
* @phpstan-var Controller<Application> $controller
|
||||
*/
|
||||
list($controller, $actionID) = $result;
|
||||
$actions = $this->getActions($controller);
|
||||
$prefix = $controller->getUniqueId();
|
||||
@@ -317,6 +344,10 @@ class HelpController extends Controller
|
||||
}
|
||||
foreach ($commands as $command => $description) {
|
||||
$result = Yii::$app->createController($command);
|
||||
/**
|
||||
* @var Controller $controller
|
||||
* @phpstan-var Controller<Application> $controller
|
||||
*/
|
||||
list($controller, $actionID) = $result;
|
||||
$actions = $this->getActions($controller);
|
||||
$this->stdout('- ' . $this->ansiFormat($command, Console::FG_YELLOW));
|
||||
@@ -349,6 +380,9 @@ class HelpController extends Controller
|
||||
/**
|
||||
* Displays the overall information of the command.
|
||||
* @param Controller $controller the controller instance
|
||||
*
|
||||
* @phpstan-param Controller<Module> $controller
|
||||
* @psalm-param Controller<Module> $controller
|
||||
*/
|
||||
protected function getCommandHelp($controller)
|
||||
{
|
||||
@@ -395,6 +429,9 @@ class HelpController extends Controller
|
||||
* @param Controller $controller the controller instance
|
||||
* @param string $actionID action ID
|
||||
* @throws Exception if the action does not exist
|
||||
*
|
||||
* @phpstan-param Controller<Module> $controller
|
||||
* @psalm-param Controller<Module> $controller
|
||||
*/
|
||||
protected function getSubCommandHelp($controller, $actionID)
|
||||
{
|
||||
@@ -517,6 +554,9 @@ class HelpController extends Controller
|
||||
* @param string $option the option name
|
||||
* @return string the formatted string for the alias argument or option
|
||||
* @since 2.0.8
|
||||
*
|
||||
* @phpstan-param Controller<Module> $controller
|
||||
* @psalm-param Controller<Module> $controller
|
||||
*/
|
||||
protected function formatOptionAliases($controller, $option)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user