Skip to content

Commit

Permalink
Refactor (#58)
Browse files Browse the repository at this point in the history
  • Loading branch information
xepozz committed Nov 13, 2022
1 parent 1d2d2bc commit ccc33d8
Show file tree
Hide file tree
Showing 46 changed files with 1,542 additions and 1,133 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ jobs:
os: >-
['ubuntu-latest', 'windows-latest']
php: >-
['8.0', '8.1']
['8.1']
2 changes: 1 addition & 1 deletion .github/workflows/rector.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ jobs:
os: >-
['ubuntu-latest']
php: >-
['8.0']
['8.1']
2 changes: 1 addition & 1 deletion .github/workflows/static.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ jobs:
os: >-
['ubuntu-latest']
php: >-
['8.0', '8.1']
['8.1']
2 changes: 1 addition & 1 deletion .scrutinizer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ build:

environment:
php:
version: 8.0.11
version: 8.1
ini:
"xdebug.mode": coverage

Expand Down
6 changes: 4 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,13 @@
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"php": "^8.0",
"phpspec/php-diff": "^1.1.0",
"php": "^8.1",
"phpspec/php-diff": "^1.1.3",
"yiisoft/aliases": "^2.0",
"yiisoft/arrays": "^2.1",
"yiisoft/data-response": "^1.0",
"yiisoft/http": "^1.2",
"yiisoft/injector": "^1.1",
"yiisoft/json": "^1.0",
"yiisoft/request-model": "dev-master",
"yiisoft/router": "^1.2",
Expand All @@ -34,6 +35,7 @@
"yiisoft/yii-middleware": "dev-master"
},
"require-dev": {
"jetbrains/phpstorm-attributes": "^1.0",
"nyholm/psr7": "^1.5",
"phpunit/phpunit": "^9.5",
"rector/rector": "^0.14.3",
Expand Down
32 changes: 18 additions & 14 deletions config/common.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,35 @@

declare(strict_types=1);

use Psr\Container\ContainerInterface;
use Yiisoft\Injector\Injector;
use Yiisoft\Yii\Gii\GeneratorInterface;
use Yiisoft\Yii\Gii\Gii;
use Yiisoft\Yii\Gii\GiiInterface;
use Yiisoft\Yii\Gii\ParametersProvider;

/**
* @var array $params
*/

return [
GiiInterface::class => function (ContainerInterface $container) use ($params): GiiInterface {
GiiInterface::class => function (Injector $injector) use ($params): GiiInterface {
$generatorsInstances = [];
$generators = $params['yiisoft/yii-gii']['generators'];
$generatorsParameters = $params['yiisoft/yii-gii'];

foreach ($generators as $name => $generator) {
if (!is_string($name)) {
throw new InvalidArgumentException('Generator name must be set.');
}

$generator = $container->get($generator);
if (array_key_exists($name, $generatorsParameters) && is_array($generatorsParameters[$name])) {
$generator->load($generatorsParameters[$name]);
}
$generatorsInstances[$name] = $generator;
foreach ($generators as $generator) {
$class = $generator['class'];
/**
* @var $generator GeneratorInterface
*/
$generator = $injector->make($class, $generator['parameters'] ?? []);
$generatorsInstances[] = $generator;
}
return new Gii($generatorsInstances, $container);
return new Gii($generatorsInstances);
},
ParametersProvider::class => [
'class' => ParametersProvider::class,
'__construct()' => [
'templates' => $params['yiisoft/yii-gii']['parameters']['templates'],
],
],
];
23 changes: 17 additions & 6 deletions config/params.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,19 @@
declare(strict_types=1);

use Yiisoft\Yii\Gii\Command\ControllerCommand;
use Yiisoft\Yii\Gii\Generator\Controller\ControllerGenerator;

return [
'yiisoft/yii-debug' => [
'ignoredRequests' => [
'/gii**',
],
],
'yiisoft/yii-swagger' => [
'annotation-paths' => [
dirname(__DIR__) . '/src/Controller',
],
],
'yiisoft/yii-console' => [
'commands' => [
'gii/controller' => ControllerCommand::class,
Expand All @@ -14,13 +25,13 @@
'enabled' => true,
'allowedIPs' => ['127.0.0.1', '::1'],
'generators' => [
'controller' => \Yiisoft\Yii\Gii\Generator\Controller\Generator::class,
[
'class' => ControllerGenerator::class,
'parameters' => [],
],
],
'basePath' => '@root',
'viewPath' => '@views',
'controller' => [
'namespace' => 'App\\Controller',
'directory' => '@src/Controller',
'parameters' => [
'templates' => [],
],
],
];
60 changes: 34 additions & 26 deletions config/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,37 +12,45 @@
use Yiisoft\Router\Route;
use Yiisoft\Validator\ValidatorInterface;
use Yiisoft\Yii\Gii\Controller\DefaultController;
use Yiisoft\Yii\Gii\Middleware\Cors;
use Yiisoft\Yii\Middleware\IpFilter;

if (!(bool)($params['yiisoft/yii-gii']['enabled'] ?? false)) {
if (!(bool) ($params['yiisoft/yii-gii']['enabled'] ?? false)) {
return [];
}

return [
Group::create('/gii/api')
->middleware(
static function (ResponseFactoryInterface $responseFactory, ValidatorInterface $validator) use ($params) {
return new IpFilter(
validator: $validator,
responseFactory: $responseFactory,
ipRanges: $params['yiisoft/yii-gii']['allowedIPs']
);
}
)
->middleware(FormatDataResponseAsJson::class)
->namePrefix('gii/api/')
->routes(
Route::get('/{generator}')
->action([DefaultController::class, 'get'])
->name('generator'),
Route::post('/{generator}/preview')
->action([DefaultController::class, 'preview'])
->name('preview'),
Route::post('/{generator}/generate')
->action([DefaultController::class, 'generate'])
->name('generate'),
Route::post('/{generator}/diff')
->action([DefaultController::class, 'diff'])
->name('diff')
),
->withCors(Cors::class)
->middleware(
static function (ResponseFactoryInterface $responseFactory, ValidatorInterface $validator) use ($params) {
return new IpFilter(
validator: $validator,
responseFactory: $responseFactory,
ipRanges: $params['yiisoft/yii-gii']['allowedIPs']
);
}
)
->middleware(FormatDataResponseAsJson::class)
->namePrefix('gii/api/')
->routes(
Group::create('/generator')
->routes(
Route::get('[/]')
->action([DefaultController::class, 'list'])
->name('list'),
Route::get('/{generator}')
->action([DefaultController::class, 'get'])
->name('generator'),
Route::post('/{generator}/preview')
->action([DefaultController::class, 'preview'])
->name('preview'),
Route::post('/{generator}/generate')
->action([DefaultController::class, 'generate'])
->name('generate'),
Route::post('/{generator}/diff')
->action([DefaultController::class, 'diff'])
->name('diff')
)
),
];
4 changes: 4 additions & 0 deletions rector.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use Rector\CodeQuality\Rector\Class_\InlineConstructorDefaultToPropertyRector;
use Rector\Config\RectorConfig;
use Rector\Php70\Rector\FuncCall\NonVariableToVariableOnFunctionCallRector;
use Rector\Set\ValueObject\LevelSetList;

return static function (RectorConfig $rectorConfig): void {
Expand All @@ -15,6 +16,9 @@
// register a single rule
$rectorConfig->rule(InlineConstructorDefaultToPropertyRector::class);

$rectorConfig->skip([
NonVariableToVariableOnFunctionCallRector::class,
]);
// define sets of rules
$rectorConfig->sets([
LevelSetList::UP_TO_PHP_80,
Expand Down
Loading

0 comments on commit ccc33d8

Please sign in to comment.