mirror of
https://github.com/sitelease/sugar-cube-client.git
synced 2025-10-29 19:12:30 +01:00
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:
@ -41,6 +41,18 @@ interface RequestChainableInterface
|
|||||||
*/
|
*/
|
||||||
public function getRequestChain(): array;
|
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
|
* Return the request chain heirarchy
|
||||||
|
|||||||
@ -74,6 +74,32 @@ trait RequestChainable
|
|||||||
return $requestChain;
|
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
|
* Return the request chain heirarchy
|
||||||
* as a string of class names
|
* as a string of class names
|
||||||
|
|||||||
@ -5,6 +5,7 @@ namespace Gitea;
|
|||||||
require 'vendor/autoload.php';
|
require 'vendor/autoload.php';
|
||||||
|
|
||||||
use Gitea\Client;
|
use Gitea\Client;
|
||||||
|
use Gitea\Model\Repository;
|
||||||
|
|
||||||
print("Starting Script... \n");
|
print("Starting Script... \n");
|
||||||
print("Creating Guzzle client \n");
|
print("Creating Guzzle client \n");
|
||||||
@ -65,6 +66,13 @@ if ($repository) {
|
|||||||
if ($debugChain) {
|
if ($debugChain) {
|
||||||
print("Chain ".$debugChain."\n");
|
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("\n\n");
|
||||||
}
|
}
|
||||||
print("Total Branches: ".count($branches)."\n");
|
print("Total Branches: ".count($branches)."\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user