벤더 클래스를 상속받는 클래스를 만들어서 쓰면 되지 않을까요?
예를들어 아래 같이 벤더 클래스가 있으면
<?php namespace Vendor\Package class Sample { function willBeOverrided() { //원래 기능 } }
아래 처럼 상속받아서 메소드를 재정의하면 될 것 같아요.
namespace MyApp class Sample extends Vendor\Package\Sample { function willBeOverrided() { // 재정의한 기능 } }
이현석님의 조언 감사드립니다.
해주신대로 해보았는데,
제 경우에는,
수정하려는 게 라라벨 페키지라 파세드를 쓰다보니 하나의 함수를 오버라이드 하는 것만으로 활용이 어렵네요;;
게다가 오버라이드 하려는 함수가 조회하는 함수들이 private 이라서 extends 해서 해결이 어렵네요...
그냥... 클래스를 통째로 MyApp 네임스페이스 안에 별로의 ServiceProvider 를 만들어서 등록하고 별도의 디렉토리에다 클래스를 통째로 복사해왔습니다^^;
config/app.php 에서
aliases, providers 에 기존의 클래스를 새로운 클래스 값으로 바꾸니 파사드도 잘 작동하고...
복잡하지 않은 패키지라 다행이지만 복잡하면 될 수 있는 방식은 아니네요;;
단순한 상황이 아니었군요! ㅎㅎ
라라벨(5.4)에서...
컴포저로 설치된 밴더 클래스가 여러가지 있는데,
밴더 소스를 건드리지 않고 클래스에 있는 함수를 오버라이딩 하려면 어떻게 해야 할까요?