Facade
μ ν리μΌμ΄μ
μ μλΉμ€ 컨ν
μ΄λ
μμ μ¬μ©κ°λ₯ν ν΄λμ€λ€μ μ μ
μΈν°νμ΄μ€λ‘ λΌλΌλ²¨μ λλΆλΆμ λΌλΌλ²¨κΈ°λ₯μ μ κ·Όνλ λ§μ νμ¬λλ₯Ό μ 곡νκ³ μλΉμ€ 컨ν
μ΄λμ λ±λ‘λ ν΄λμ€λ€μ λν μΌμ’
μ μ μ νλ‘μ
μν μ μννμ¬ μ μ λ©μλλ³΄λ€ κ°κ²°ν λ¬Έλ²κ³Ό ν
μ€νΈμ μ©μ΄μ±, μ½λμ μ μ°μ±μ μ μ§νλ μ₯μ μ μ 곡νλ€.
λμ λ°©μ
\Gate::denies(..)
μμ \Gateλ μ΄λμμ μμκΉ?
\
λ‘ μμνλ κ²μ κΈλ‘λ² λ€μμ€νμ΄μ€λ₯Ό μλ―Ένλλ° νλ‘μ νΈμ λ£¨νΈ λλ ν 리μ μλ€λ κ²μ μλλ€. λΌλΌλ²¨μ appμ μμν λclass_alias
ν¨μλ₯Ό μ΄μ©ν΄μconfig/app.php
νμΌμ μλ aliasesνλͺ©μ μ μ λμ΄ μλ ν΄λμ€λ€μ λ³μΉμ κΈλ‘λ² λ€μμ€νμ΄μ€μ λ±λ‘νλ€.
μ¦, \Gateλ Illuminate\Support\Facades\Gate::class
μ΄λ€.
κ·Έλ°λ° Gateν΄λμ€μ κ°λ³΄λ©΄ denies()λ μ μλμ΄ μμ§ μλλ° λμνλ κ²μ λ³Ό μ μλλ° μ΄λ λΆλͺ¨ν΄λμ€μΈ Facade
μ 보면 __callStatic()
μ΄λΌλ static λ©μλκ° μ μλμ΄μλ€. μ΄ λ©μλλ μ μλμ΄μμ§ μμ staticλ©μλκ° νΈμΆλλ©΄ λμνλ λ§€μ§ λ©μλ
λ‘ μ΄λλ¬Έμ λμνλ κ²μ΄λ€.
__callStatic()μμ static::getFacadeRoot()λ‘ μΈμ€ν΄μ€λ₯Ό κ°μ Έμ€κ³ κ·Έ μΈμ€ν΄μ€μμ μλ μ€ννλ λ©μλλ₯Ό μ€ννλ κ²μ΄λ€. getFacadRoot()λ©μλλ₯Ό λ€μ λ΄λ³΄λ©΄ static::resolveFacadeInstance()
λ‘ μ²«λ²μ§Έ νλΌλ―Έν°μΈ static::getFacadeAccessor()
μ μΈμ€ν΄μ€λ₯Ό μλΉμ€ 컨ν
μ΄λλ‘ κ°μ Έμ¨λ€. getFacadeAccessor()λ κ° νμ¬λ ν΄λμ€μμ μ€λ²λΌμ΄λνλ λ©μλλ‘ Gate
κ° μ μΌνκ² κ°μ§κ³ μλ λ©μλκ° λ°λ‘ μ΄ λ©μλμ΄κΈ° λλ¬Έμ Gateν΄λμ€μ λ©μλμ μν΄ denies()λ©μλλ₯Ό μ°Ύλ λ°©μμΌλ‘ λμνλ€.
Last updated