Phpro\SoapClient\CodeGenerator\Assembler\ResultProviderAssembler::assemble PHP Method

assemble() public method

public assemble ( Phpro\SoapClient\CodeGenerator\Context\ContextInterface $context )
$context Phpro\SoapClient\CodeGenerator\Context\ContextInterface
    public function assemble(ContextInterface $context)
    {
        $class = $context->getClass();
        $properties = $context->getType()->getProperties();
        $firstProperty = count($properties) ? current($properties) : null;
        try {
            $interfaceAssembler = new InterfaceAssembler(ResultProviderInterface::class);
            if ($interfaceAssembler->canAssemble($context)) {
                $interfaceAssembler->assemble($context);
            }
            if ($firstProperty) {
                $this->implementGetResult($context, $class, $firstProperty);
            }
        } catch (\Exception $e) {
            throw AssemblerException::fromException($e);
        }
    }

Usage Example

コード例 #1
0
    /**
     * @test
     */
    function it_assembles_a_type_with_wrapper_class_with_prefixed_slash()
    {
        $assembler = new ResultProviderAssembler('\\' . MixedResult::class);
        $context = $this->createContext();
        $assembler->assemble($context);
        $code = $context->getClass()->generate();
        $expected = <<<CODE
namespace MyNamespace;

use Phpro\\SoapClient\\Type\\ResultProviderInterface;
use Phpro\\SoapClient\\Type\\MixedResult;

class MyType implements ResultProviderInterface
{

    /**
     * @return MixedResult
     */
    public function getResult()
    {
        return new MixedResult(\$this->prop1);
    }


}

CODE;
        $this->assertEquals($expected, $code);
    }