Fixed method arguments issue.
This commit is contained in:
parent
caf4eef02d
commit
2217c8c3de
5 changed files with 27 additions and 11 deletions
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
0.2408.610150
|
||||
0.2408.611934
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
// BencodeSerialisableTrait.php
|
||||
// Created: 2024-09-29
|
||||
// Updated: 2024-09-29
|
||||
// Updated: 2024-09-30
|
||||
|
||||
namespace Index\Bencode;
|
||||
|
||||
|
@ -55,15 +55,15 @@ trait BencodeSerialisableTrait {
|
|||
|
||||
$methodInfos = $objectInfo->getMethods(ReflectionMethod::IS_PUBLIC);
|
||||
foreach($methodInfos as $methodInfo) {
|
||||
if($methodInfo->getNumberOfRequiredParameters() > 0)
|
||||
throw new RuntimeException('Methods marked with the BencodeProperty attribute must not have any required arguments.');
|
||||
|
||||
$attrInfos = $methodInfo->getAttributes(BencodeProperty::class);
|
||||
if(count($attrInfos) < 1)
|
||||
continue;
|
||||
if(count($attrInfos) > 1)
|
||||
throw new RuntimeException('Methods may only carry a single instance of the BencodeProperty attribute.');
|
||||
|
||||
if($methodInfo->getNumberOfRequiredParameters() > 0)
|
||||
throw new RuntimeException('Methods marked with the BencodeProperty attribute must not have any required arguments.');
|
||||
|
||||
$info = $attrInfos[0]->newInstance();
|
||||
|
||||
$name = $info->getName() ?? $methodInfo->getName();
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
// JsonSerializableTrait.php
|
||||
// Created: 2024-09-29
|
||||
// Updated: 2024-09-29
|
||||
// Updated: 2024-09-30
|
||||
|
||||
namespace Index\Json;
|
||||
|
||||
|
@ -53,15 +53,15 @@ trait JsonSerializableTrait {
|
|||
|
||||
$methodInfos = $objectInfo->getMethods(ReflectionMethod::IS_PUBLIC);
|
||||
foreach($methodInfos as $methodInfo) {
|
||||
if($methodInfo->getNumberOfRequiredParameters() > 0)
|
||||
throw new RuntimeException('Methods marked with the JsonProperty attribute must not have any required arguments.');
|
||||
|
||||
$attrInfos = $methodInfo->getAttributes(JsonProperty::class);
|
||||
if(count($attrInfos) < 1)
|
||||
continue;
|
||||
if(count($attrInfos) > 1)
|
||||
throw new RuntimeException('Methods may only carry a single instance of the JsonProperty attribute.');
|
||||
|
||||
if($methodInfo->getNumberOfRequiredParameters() > 0)
|
||||
throw new RuntimeException('Methods marked with the JsonProperty attribute must not have any required arguments.');
|
||||
|
||||
$info = $attrInfos[0]->newInstance();
|
||||
|
||||
$name = $info->getName() ?? $methodInfo->getName();
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
// BencodeSerialisableTest.php
|
||||
// Created: 2024-09-29
|
||||
// Updated: 2024-09-29
|
||||
// Updated: 2024-09-30
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
|
@ -134,6 +134,14 @@ final class BencodeSerialisableTest extends TestCase {
|
|||
}
|
||||
};
|
||||
}
|
||||
|
||||
public function methodWithArguments(string $meow): string {
|
||||
return $meow;
|
||||
}
|
||||
|
||||
public static function staticMethodWithArguments(string $meow): string {
|
||||
return $meow;
|
||||
}
|
||||
};
|
||||
|
||||
$this->assertEquals(self::BASIC_BENCODED_ENCODED, Bencode::encode($test));
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
// JsonSerializableTest.php
|
||||
// Created: 2024-09-29
|
||||
// Updated: 2024-09-29
|
||||
// Updated: 2024-09-30
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
|
@ -132,6 +132,14 @@ final class JsonSerializableTest extends TestCase {
|
|||
}
|
||||
};
|
||||
}
|
||||
|
||||
public function methodWithArguments(string $meow, string $mewow): string {
|
||||
return $meow . $mewow;
|
||||
}
|
||||
|
||||
public static function staticMethodWithArguments(string $meow, string $mewow): string {
|
||||
return $meow . $mewow;
|
||||
}
|
||||
};
|
||||
|
||||
$this->assertEquals(self::BASIC_JSON_ENCODED, json_encode($test));
|
||||
|
|
Loading…
Reference in a new issue