가희의자기개발블로그

Route : routes파일 구조 본문

백엔드/Laravel

Route : routes파일 구조

가희gahui 2020. 10. 12. 10:26
반응형

원래 포스팅 되어있던 글은 굉장히 형편 없어서 다시 글을 쓴다. 

 

 

라라벨 routes폴더를 먼저 이해해 보자! 여기서는 Laravel 5.7버전을 기준으로 설명 하겠다.

 

대개 routes폴더에는 위와 같이 파일들이 들어있을 것이다. 우리가 봐야 할 것은 

1. api.php  - API 엔드 포인트

2. web.php - 웹 엔드포인트 

3. console.php - 클로저 형식으로 작성한 아티즌 콘솔 명령

4.channels.php 

 

라라벨 책에서는 이런식으로 설명이 되어있는데, 이렇게만 보면 나와같은 신생아 개발자들은 뭐가 뭔지 모른다. 

우선 routes 디렉토리는 애플리케이션에서 정의된 모든 라우트들이 들어있다. 

 

web.php 파일은 RouteServiceProvider의 Web 미들에어 그룹안에 포함되는 라우트들을 포함하고 있으면, 세션 상태, CSRF 보호, 쿠키 암호화 기능을 제공한다. 만약 애플리테이션의 상태를 저장하지 않는 RESTful API를 제공하지 않는다면, 대부분의 라우트는 해당 파일안에 저장될것이다. 

 

api.php 파일은 RouteServiceProvider의 api 미들웨어 그룹안에 포함되는 라우트들을 포함하고 있으며, 접속속도 제한 기능을 제공한다. 이 라우트들은 상태를 저장하지 않는 것을 대상으로 하며 따라서 request-요청들이 애플리케이션에 진입하면 이 라우트들을 통해서 토큰을 통해서 인증되고 세션 상태에 액세스 할 수 없다. 

 

console.php 파일은 클로저 기반의 명령어들을 정의해 놓을 수 있는 파일이다. 각각의 클로저는 각각의 명령어 IO메소드와 상호작용하는 간단한 명령어를 구현하는 명령어 인스턴스에 바인드 되어 있다. 이 파일에는 httl라우트가 정의되어 있지는 않지만, 애플리케이션에 콘솔 기반의 진입점을 정의한다. 

 

channels.php 파일은 애플리케이션에서 지원하는 모든 이벤트 브로드캐스팅 채널을 등록하는 파일이다. 

 

--------------------------------------------------------------------------------------------------------------------------

 

 

/*Route::get('/', function () {
//return view('welcome');
/*스트링을 반환하면 브라우저에 스트링이 출력된다. */
//return 'Hello World';

/*가령 라라벨에 기본 내장 되어 있는 resources/view/errors.503.blade.php과 같이 하위 뷰를
응답하려면 어떻게 해야할까? 하위 디렉토리는 '.' 또는 '/'로 구분한다.
해당 뷰는 라라벨 어플리케이션이 유지보수 모드에 들어갔을 때 사용자에게 보여주는 뷰이다.
$ php artisan down 명령으로 유지보수 상태로 전환하고
$ php artisan up 으로 서비스 상태로 복귀할 수 있다. (유지보수 모드는 웹 서버를 중지 시킨것은 아니다.)
*/
//return view('errors.503');

/*참고, view() Helper Function이다. return View::make('welcome')와 같이
라라벨이 제공하는 Facade를 이용할 수도 있다. Facade Static Access 형태를 빌려 쓰고 있지만, 실제로
백그라운드에서는 Service Container에 의해서 새로운 instance를 생성하여 메소드에 접근하므로, Anti Pattern이 아니다.*/

/*
* with()메소드로 뷰에 데이터 바인딩 하는 방법
* */
/*$greeting = 'Hello';
return view('index')->with('greeting', $greeting);*/

/*
* with()메소드로 한 개 이상의 데이터를 넘기는 방법
* */

/*return view('index')->with([
'greeting' => 'Good Morning ^^/',
'name' => 'gahui'

]);*/


/*
* view()의 두번째 인자로 데이터를 넘기는 방법
* 실전에서는 compact(mixed $varname) php 내장 함수와 조합하여
* $greeting='World'; return view('index',compact('greeting'));
* 와 같은 식으로 많이 이용한다.
* */

/*return view('index',[
'greeting' => 'Bonjour',
'name' => 'Gahui'
]);*/


/*view 인스턴스의 Property를 이용하는 방법*/
/*$view = view('index');
$view ->greeting ="Hey~ what's up";
$view ->name = 'everyone';
return $view;*/

$items =[
'Apple',
'Banana'
];
$itemCount = 2;
return view('index',compact('items','itemCount'));
});

반응형

'백엔드 > Laravel' 카테고리의 다른 글

<Laravel> ValidationException -json Type으로 return 하기  (1) 2021.05.01
Laravel 시작  (3) 2020.10.10
Comments