mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-28 21:18:46 +02:00
poc form SDK (symfony 6)
This commit is contained in:
32
sources/DI/Services/ClassParameterValueResolver.php
Normal file
32
sources/DI/Services/ClassParameterValueResolver.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace Combodo\iTop\DI\Services;
|
||||
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpKernel\Controller\ValueResolverInterface;
|
||||
use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
|
||||
|
||||
class ClassParameterValueResolver implements ValueResolverInterface
|
||||
{
|
||||
|
||||
public function resolve(Request $request, ArgumentMetadata $argument): iterable
|
||||
{
|
||||
if(\MetaModel::IsValidClass($argument->getType())){
|
||||
|
||||
$aAttributes = $argument->getAttributesOfType(Orm::class);
|
||||
|
||||
$sParameterName = 'id';
|
||||
|
||||
if(count($aAttributes) > 0){
|
||||
$sParameterName = $aAttributes[0]->mapping;
|
||||
}
|
||||
|
||||
$sRef = $request->get($sParameterName);
|
||||
|
||||
$oObject = \MetaModel::GetObject($argument->getType(), $sRef);
|
||||
return [$oObject];
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user