singleton 적용되지 않는 부분 문의드립니다.
257
2 câu hỏi đã được viết
안녕하세요, 강의중에 bind, singleton 부분에서 singleton 적용시에도 bind 처럼 동작하여 문의드립니다.
비슷한 증상의 질문 봤어서 해당 질문 답변에 기재된 gmail 주소로 소스코드 압축하여 보내드렸습니다.
확인해주실 수 있으실까요?ㅠㅠ
app.php
'providers' => ServiceProvider::defaultProviders()->merge([
/*
* Package Service Providers...
*/
/*
* Application Service Providers...
*/
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
// App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
App\Providers\AProvider::class,
])->toArray(),
web.php
Route::get('/one', function () {
for ($i=0; $i < 3; $i++)
{
echo app(Acontroller::class)->multiple(2);
echo "<br />";
}
return "------------";
});
Acontroller.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class Acontroller extends Controller
{
// 클래스 안에서만 쓸 수 있는 내부 변수
protected $result;
protected $basecontroller;
// 내부 함수의 기본값을 설정하는 __contruct (생성자)
public function __construct(BaseController $basecontroller){
$this->basecontroller = $basecontroller;
}
public function multiple($num){
$this->result += $this->basecontroller->plus($num) * 10;
return $this->result;
}
}
BaseController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class BaseController extends Controller
{
protected $result;
public function __construct(){
$this->result = 0;
}
public function plus($num){
$this->result = $num + 5;
return $this->result;
}
}
AProvider.php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Http\Controller\Acontroller;
use App\Http\Controller\BaseController;
class AProvider extends ServiceProvider
{
/**
* Register services.
*/
public function register(): void
{
$this->app->singleton(Acontroller::class, function($app) {
return new Acontroller($app->make(Basecontroller::class));
});
}
/**
* Bootstrap services.
*/
public function boot(): void
{
}
}
Câu trả lời 2
0
아ㅠㅠ 오타 꼼꼼히 확인했다고 생각했는데도 꼭 하나씩 발생하네요..
구조적인 이해가 부족한 탓도 있는것 같습니다.
복습하면서 다시해보겠습니다.
감사합니다!
0
보시면 AProvider.php 에 use 부분에 controller 가 아닌 controllers 로 바꾸어야 작동이 될 것으로 보입니다. 라라벨 세일 환경에서 이 같은 오타를 잡아낼 수 있는 확장 프로그램이 없어서 새로 배우시려는 분들이 많이 해매는 곳이기도 합니다.
변경전
변경 후
wsl에서 폴더 열기 리눅스 드라이브가 보이지 않습니다.
0
65
1
우분투 설치후 도커 설치하고 재부팅후 우분투 설정 화면이 안나옵니다.
0
46
1
섹션8 wire:model 실시간 적용 안됨 문의...
0
136
2
색션6 미들웨어 실습 질문 - routeMiddleware가 없습니다..
0
150
1
composer require livewire:livewire "^2.0" 안되요 ㅠ
0
177
2
우분투 서버에서 개발한 프로그램 서비스하기
0
224
1
공부하면서 깃에 잔디도 심고싶은데 클론이 안되네요;;
0
347
2
기가 막히네..
-3
301
1
미들웨어 실습 시 data 가 false 일 경우 에러 문의
0
309
1
api.php, web.php 문의
0
282
2
꼭 api.php, web.php 로 나눠서 해야 하나요?
0
284
1
같은 에러 인데요..SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel.sessions' doesn't exist
0
513
1
라라벨 11 버전으로 공부하고 있습니다. 서비스 프로바이더 변경되었네요.
1
853
1
7강 controller 에러 문의 드립니다
0
335
2
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel.sessions' doesn't exist
0
1194
2
WSL Integration부터 자꾸 실패하는데..
0
295
1
라라벨 폴더명을 다르게 하면 연결이 안되네요
0
626
3
강사님 깃허브 폴더를 연결하고 싶습니다.
0
321
2
라라벨 설치부터막히네요 ㅠㅠ
0
278
1
ppt 강의 자료를 다운로드 받을 수 있을까요?
0
378
1
컨트롤러 로 호출하는게 안됩니다.
0
230
1
업로드에서 진행이 안되고 있습니다.
0
265
1
깃헙 주소 알려주세요~
0
355
1
The /var/www/html/bootstrap/cache directory must be present and writable.
0
497
1

