Skip to content

Commit 8e62d0f

Browse files
committed
phpcs implementation
1 parent c9383d0 commit 8e62d0f

7 files changed

+128
-19
lines changed

phpcs.xml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ruleset name="pcsg-generated-ruleset">
3+
<file>src/</file>
4+
<arg name="basepath" value="."/>
5+
<arg name="colors"/>
6+
<arg name="no-cache"/>
7+
<description>
8+
Micro Framework - сode formatting rules.
9+
</description>
10+
<rule ref="Generic.CodeAnalysis.EmptyStatement"/>
11+
<rule ref="Generic.CodeAnalysis.JumbledIncrementer"/>
12+
<rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/>
13+
<rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier"/>
14+
<rule ref="Generic.CodeAnalysis.UselessOverridingMethod"/>
15+
<rule ref="Generic.ControlStructures.InlineControlStructure"/>
16+
<rule ref="Generic.Files.ByteOrderMark"/>
17+
<rule ref="Generic.Files.LineEndings"/>
18+
<rule ref="Generic.Files.LineLength">
19+
<properties>
20+
<property name="lineLimit" value="120"/>
21+
<property name="absoluteLineLimit" value="140"/>
22+
</properties>
23+
</rule>
24+
<rule ref="Generic.Formatting.DisallowMultipleStatements"/>
25+
<rule ref="Generic.Formatting.MultipleStatementAlignment"/>
26+
<rule ref="Generic.Formatting.NoSpaceAfterCast"/>
27+
<rule ref="Generic.Functions.CallTimePassByReference"/>
28+
<rule ref="Generic.Functions.OpeningFunctionBraceBsdAllman"/>
29+
<rule ref="Generic.Metrics.CyclomaticComplexity"/>
30+
<rule ref="Generic.Metrics.NestingLevel"/>
31+
<rule ref="Generic.NamingConventions.ConstructorName"/>
32+
<rule ref="Generic.NamingConventions.UpperCaseConstantName"/>
33+
<rule ref="Generic.NamingConventions.CamelCapsFunctionName"/>
34+
<rule ref="Generic.PHP.DeprecatedFunctions"/>
35+
<rule ref="Generic.PHP.DisallowShortOpenTag"/>
36+
<rule ref="Generic.PHP.ForbiddenFunctions"/>
37+
<rule ref="Generic.PHP.LowerCaseConstant"/>
38+
<rule ref="Generic.PHP.NoSilencedErrors"/>
39+
<rule ref="Generic.Strings.UnnecessaryStringConcat"/>
40+
<rule ref="Generic.WhiteSpace.DisallowTabIndent"/>
41+
<rule ref="MySource.PHP.EvalObjectFactory"/>
42+
<rule ref="MySource.PHP.GetRequestData"/>
43+
<rule ref="PEAR.Classes.ClassDeclaration"/>
44+
<rule ref="PEAR.Commenting.InlineComment"/>
45+
<rule ref="PEAR.ControlStructures.MultiLineCondition"/>
46+
<rule ref="PEAR.Files.IncludingFile"/>
47+
<rule ref="PEAR.Formatting.MultiLineAssignment"/>
48+
<rule ref="PEAR.Functions.ValidDefaultValue"/>
49+
<rule ref="PEAR.NamingConventions.ValidClassName"/>
50+
<rule ref="PEAR.WhiteSpace.ObjectOperatorIndent"/>
51+
<rule ref="PEAR.WhiteSpace.ScopeClosingBrace"/>
52+
<rule ref="PEAR.WhiteSpace.ScopeIndent"/>
53+
<rule ref="PSR1.Classes.ClassDeclaration"/>
54+
<rule ref="PSR1.Files.SideEffects"/>
55+
<rule ref="PSR2.Classes.ClassDeclaration"/>
56+
<rule ref="PSR2.Classes.PropertyDeclaration"/>
57+
<rule ref="PSR2.ControlStructures.ControlStructureSpacing"/>
58+
<rule ref="PSR2.ControlStructures.ElseIfDeclaration"/>
59+
<rule ref="PSR2.ControlStructures.SwitchDeclaration"/>
60+
<rule ref="PSR2.Files.EndFileNewline"/>
61+
<rule ref="PSR2.Methods.MethodDeclaration"/>
62+
<rule ref="PSR2.Namespaces.NamespaceDeclaration"/>
63+
<rule ref="PSR2.Namespaces.UseDeclaration"/>
64+
</ruleset>

src/Configuration/ApplicationConfigurationInterface.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
interface ApplicationConfigurationInterface
66
{
77
/**
8-
* @param string $key
9-
* @param $default
8+
* @param string $key
9+
* @param $default
10+
* @param bool $nullable
1011
* @return mixed
1112
*/
12-
public function get(string $key, $default = null): mixed;
13+
public function get(string $key, $default = null, bool $nullable = true): mixed;
1314
}

src/Configuration/DefaultApplicationConfiguration.php

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,14 @@
22

33
namespace Micro\Framework\Kernel\Configuration;
44

5+
use Micro\Framework\Kernel\Configuration\Exception\InvalidConfigurationException;
6+
57
class DefaultApplicationConfiguration implements ApplicationConfigurationInterface
68
{
9+
private const BOOLEAN_TRUE = [
10+
'true', 'on', '1', 'yes'
11+
];
12+
713
/**
814
* @param array<string, mixed> $configuration
915
*/
@@ -14,7 +20,44 @@ public function __construct(private array $configuration)
1420
/**
1521
* {@inheritDoc}
1622
*/
17-
public function get(string $key, $default = null): mixed
23+
public function get(string $key, $default = null, bool $nullable = true): mixed
24+
{
25+
if(is_bool($default)) {
26+
return $this->getBooleanValue($key, $default);
27+
}
28+
29+
$value = $this->getValue($key, $default);
30+
31+
if($nullable === false && !$value) {
32+
throw new InvalidConfigurationException(sprintf('Configuration key "%s" can not be NULL', $key));
33+
}
34+
35+
return $value;
36+
}
37+
38+
/**
39+
* @param string $key
40+
* @param bool $default
41+
*
42+
* @return bool
43+
*/
44+
protected function getBooleanValue(string $key, bool $default): bool
45+
{
46+
$value = $this->getValue($key, $default);
47+
if($value === null) {
48+
return $default;
49+
}
50+
51+
return in_array(mb_strtolower($value), self::BOOLEAN_TRUE, true);
52+
}
53+
54+
/**
55+
* @param string $key
56+
* @param mixed $default
57+
*
58+
* @return mixed
59+
*/
60+
protected function getValue(string $key, mixed $default): mixed
1861
{
1962
return $this->configuration[$key] ?? $default;
2063
}

src/Configuration/PluginRoutingKeyConfiguration.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ class PluginRoutingKeyConfiguration extends PluginConfiguration
1010
*/
1111
public function __construct(
1212
ApplicationConfigurationInterface $configuration,
13-
protected string $configRoutingKey
14-
) {
13+
protected string $configRoutingKey
14+
)
15+
{
1516
parent::__construct($configuration);
1617
}
1718

@@ -25,16 +26,17 @@ protected function cfg(string $key): string
2526
}
2627

2728
/**
28-
* @param string $key
29-
* @param $default
29+
* @param string $key
30+
* @param $default
31+
* @param bool $nullable
3032
* @return mixed
3133
*/
32-
protected function get(string $key, $default = null): mixed
34+
protected function get(string $key, $default = null, bool $nullable = true): mixed
3335
{
3436
return $this->configuration->get(
3537
$this->cfg($key),
36-
$default
38+
$default,
39+
$nullable
3740
);
3841
}
3942
}
40-

src/Configuration/Resolver/PluginConfigurationClassResolver.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace Micro\Framework\Kernel\Configuration\Resolver;
44

5-
65
use Micro\Framework\Kernel\Configuration\ApplicationConfigurationInterface;
76
use Micro\Framework\Kernel\Configuration\PluginConfiguration;
87

@@ -20,7 +19,8 @@ class PluginConfigurationClassResolver
2019
public function __construct(
2120
private string $pluginClass,
2221
private ApplicationConfigurationInterface $applicationConfiguration
23-
) {
22+
)
23+
{
2424
$this->resolvers = $this->getPluginClassResolvers();
2525
}
2626

@@ -30,7 +30,7 @@ public function __construct(
3030
public function resolve(): PluginConfiguration
3131
{
3232
$configClassDefault = PluginConfiguration::class;
33-
$configClasses = [];
33+
$configClasses = [];
3434

3535
foreach ($this->resolvers as $resolver) {
3636
$configClass = $resolver->resolve($this->pluginClass);

src/Kernel.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
namespace Micro\Framework\Kernel;
44

5-
6-
75
use Micro\Component\DependencyInjection\Container;
86
use Micro\Framework\Kernel\Configuration\ApplicationConfigurationInterface;
97
use Micro\Framework\Kernel\Configuration\PluginConfiguration;
@@ -39,8 +37,9 @@ public function __construct(
3937
private ApplicationConfigurationInterface $configuration,
4038
private array $pluginBootLoaderCollection,
4139
private ?Container $container = null
42-
) {
43-
$this->isStarted = false;
40+
)
41+
{
42+
$this->isStarted = false;
4443
$this->isTerminated = false;
4544

4645
$this->plugins = [];

src/KernelBuilder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class KernelBuilder
3333

3434
public function __construct()
3535
{
36-
$this->pluginCollection = [];
36+
$this->pluginCollection = [];
3737
$this->bootLoaderPluginCollection = [];
3838
}
3939

0 commit comments

Comments
 (0)