Updated RequestChainable Interface and Trait

+ Added a new searchRequestChain()  method that will climb up the request chain searching for an object of a certain class
+ Added some test code for the new method in the TestRun.php file
This commit is contained in:
Benjamin Blake
2020-02-26 22:34:36 -07:00
parent 70f978847e
commit f5c7ed4962
3 changed files with 46 additions and 0 deletions

View File

@ -41,6 +41,18 @@ interface RequestChainableInterface
*/
public function getRequestChain(): array;
/**
* Climb up the request chain searching for
* an object of a certain class
*
* If the object is found it will be returned,
* otherwise the method returns null
*
* @author Benjamin Blake (sitelease.ca)
* @param string $class The class of the object you are searching for
* @return object|null
*/
public function searchRequestChain(string $class): ?object;
/**
* Return the request chain heirarchy

View File

@ -74,6 +74,32 @@ trait RequestChainable
return $requestChain;
}
/**
* Climb up the request chain searching for
* an object of a certain class
*
* If the object is found it will be returned,
* otherwise the method returns null
*
* @author Benjamin Blake (sitelease.ca)
* @param string $class The class of the object you are searching for
* @return object|null
*/
public function searchRequestChain(string $class): ?object
{
$requestChain = $this->getRequestChain();
$foundObj = null;
foreach ($requestChain as $callerObj) {
if ($class == get_class($callerObj)) {
$foundObj = $callerObj;
break;
}
}
return $foundObj;
}
/**
* Return the request chain heirarchy
* as a string of class names

View File

@ -5,6 +5,7 @@ namespace Gitea;
require 'vendor/autoload.php';
use Gitea\Client;
use Gitea\Model\Repository;
print("Starting Script... \n");
print("Creating Guzzle client \n");
@ -65,6 +66,13 @@ if ($repository) {
if ($debugChain) {
print("Chain ".$debugChain."\n");
}
$foundObj = $branch->searchRequestChain(Repository::class);
if ($foundObj) {
print("Repository class found \n");
print("Type: ".get_class($foundObj)." \n");
} else{
print("Repository class NOT found \n");
}
print("\n\n");
}
print("Total Branches: ".count($branches)."\n");