PHP - 정적 팩토리 메소드

정적 팩토리 메서드란 객체 생성의 역할을 하는 클래스 메서드라는 의미로 요약해볼 수 있다.

class Item
{
    protected static $itemFactory;
		
    public static function setFactory($callable)
    {
        self::$itemFactory = $callable;
    }

    public function create()
    {
        return $this->createFormFactory();
    }

    private static function createFormFactory()
    {
        if (self::$requestFactory) {
            $request = \\call_user_func(self::$requestFactory);

            if (!$request instanceof self) {
                throw new \\LogicException('The Request factory must return an instance of Item.');
            }

            return $request;
        }

        return new static();
    }
}

 

참고한 코드 \vendor\symfony\http-foundation\Request.php

https://github.com/symfony/http-foundation/blob/5.3/Request.php

  • share