[학습노트] 라벨의 중간부품을 조사했습니다.
인증·검증용으로 쓰인 것 같지만, 구체적으로 어떻게 조작됐는지 전혀 알 수 없어 자체 조사한 내용을 정리했다.
・그럼, 중간부품은?
Laavel 중간부품의 기본 시작(&HTML minify 출력, 웹 사이트 고속화)
Laravel5.8 (공식 사이트)
"After 중간부품"을 읽었는데 중간부품에 "Before 중간부품"과 "After 중간부품"이 있는 것을 발견하였다.
양자는 중간부품이 어느 때에 기동적으로 작동하는지에 따라 구분된다.
클라이언트에서 요청하고 서버에서 응답하는 프로세스가 중간부품을 포함할 때
① 중간부품은 고객의 요청을 받아들인다.
② 요청에 첨부된 정보를 처리한다(GET는 쿼리 문자열, POST는 body).(Before 미들웨어)
③ 중간부품은 ② 처리된 정보를 컨트롤러에 전송한다.(인증 시 직접 리디렉션 전송 안 함)
④ 컨트롤러에서 보기를 선택하고 필요할 때 사용자에게 정보를 전달한다.
⑤ 시트를 렌더링합니다.
⑥ 컨트롤러는 ⑤에 렌더링된 페이지를 포함한 정보를 응답으로 중간부품으로 보냅니다.
⑥에서 보내온 메시지를 처리한다.(After 중간부품)
⑥ 중간부품이 클라이언트에게 정보를 보냅니다.
상술한 절차이기 때문에 "이 중간부품은 Before 중간부품입니까, 아니면 After 중간부품입니까?"이 중간부품이 어느 시간에 컨트롤러에 정보를 전달합니까? (요청하십니까?)
결정해.
중간부품에서 컨트롤러에 요청하기 위해서
$next($request)
실행해야 하기 때문에Before 중간부품
<?php
namespace App\Http\Middleware;
use Closure;
class BeforeMiddleware
{
public function handle($request, Closure $next)
{
// アクションを実行…
return $next($request);
}
}
After 중간부품호칭
<?php
namespace App\Http\Middleware;
use Closure;
class AfterMiddleware
{
public function handle($request, Closure $next)
{
$response = $next($request);
// アクションを実行…
return $response;
}
}
과 $next($request)
의 위치에 따라 구분한다.직감은 후술한 로트에서 설정한 건가요?그렇게 생각하지만 중간부품을 기술한 파일에서 앞뒤가 지정된 것 같습니다.
어떻게 만드는가.
$php artisan make:middleware hogeMiddleware
/어디서 만들어요?app/Http/Middleware
/어떻게 집행하는가.생성된 중간부품은 직접 실행되지 않습니다.따라서 "이 컨트롤러의 앞뒤 동작"을 지정해야 합니다.(컨트롤러와 중간부품은 반드시 연결되어야 한다)
이 웹을 위해.php 열기
use App¥Http¥Middleware¥hogeMiddleware;
Route::get('hogehoge', 'hogehogeController@hogehoge')
->middleware(hogeMiddleware::class);
.이렇게 되면 (URL)/hogehogehoge의 GET 요청이 오면 hogeMiddleware는 요청을 받고 고객에 대한 응답도 hogeMiddleware에서 되돌아옵니다.
·
$next($request)
의 반환값$next($request)
컨트롤러가 동작한 결과를 되돌려줍니다.
Reference
이 문제에 관하여([학습노트] 라벨의 중간부품을 조사했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/honda/articles/136a35ebaad2d8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)