Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 지속되는 싱글 톤과 옥탄에없는 싱글 톤을 어떻게 구별합니까?


지속되는 싱글 톤과 옥탄에없는 싱글 톤을 어떻게 구별합니까?


지속되는 싱글 톤과 Laravel Octane에없는 싱글 톤을 구별하려면 옥탄이 싱글 톤 인스턴스를 어떻게 처리하는지 이해해야합니다. 고려해야 할 핵심 사항은 다음과 같습니다.

지속되는 싱글 톤

1. 서비스 제공 업체의 싱글 톤 : 서비스 제공 업체 내부, 특히`boot` 또는`register '방법으로 해결되는 싱글 톤은 요청에 따라 지속됩니다. 이 싱글 톤은 애플리케이션 부트 스트래핑 중에 해결되며 컨테이너 캐시에 저장되기 때문입니다.

2. 따뜻한 서비스 : 옥탄 구성 파일의 '따뜻한'배열에 싱글 톤을 추가하여 응용 프로그램 부트 스트랩 래핑 중에 해결되고 지속되도록 할 수 있습니다. 이런 식 으로이 싱글 톤은 모든 요청에 ​​따라 사용할 수 있습니다.

지속되지 않는 싱글 톤

1. 요청 처리 중 싱글 톤 : 요청 처리 중에 해결되는 싱글 톤은 지속되지 않습니다. 모든 요청에 ​​따라 구성되며 컨테이너 캐시에 저장되지 않습니다.

2. 플러시 서비스 : 서비스 제공 업체 내부에 싱글 톤을 등록하고 해결하는 패키지가있는 경우 모든 요청 전에 해당 인스턴스를 플러시하려는 경우 옥탄 구성 파일의 '플러시'배열에 추가 할 수 있습니다. 이를 통해 각 요청을 처리 한 후 싱글 톤이 컨테이너에서 제거되도록합니다.

모범 사례

1. 콜백 사용 : 싱글 톤을 등록 할 때는 실제 인스턴스 대신 콜백을 사용하여 한 번만 해결되도록하십시오.

2. 정적 특성을 피하십시오 : 싱글 톤에서 정적 특성을 사용하지 않으면 메모리 누출로 이어지고 요청에 따라 지속될 수 있습니다.

3. 상수 사용 : 불변성을 보장하기 위해 가능한 경우 정적 특성 대신 상수를 사용하십시오.

4. 요청 인스턴스 : 싱글 톤을 해결할 때 콜백을 전달하여 요청 인스턴스가 올바르게 해결되도록하십시오.

5. 구성 저장소 : 구성 저장소를 주입하는 대신`config ()`헬퍼 함수를 ​​사용하여 올바르게 해결되도록합니다.

이러한 모범 사례를 따르고 옥탄이 싱글 톤 인스턴스를 처리하는 방법을 이해함으로써, 당신은 지속되는 싱글 톤과 옥탄에서 실행되지 않는 싱글 톤을 효과적으로 관리하고 차별화 할 수 있습니다 [2] [4] [5].

인용 :
[1] https://laracasts.com/discuss/channels/laravel/singletone-not-working-in-laravel
[2] https://divinglaravel.com/laravel-octane-bootstrapping-the-application-and handling-requests
[3] https://grantwinney.com/difference-ween-singleton-scoped-transient/
[4] https://betterprogramming.pub/the-downsides-of-coding-with-laravel-octane-17f4a4a85?gi=d8afa3954408
[5] https://www.prismetric.com/laravel-octane/