일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- invalid_grant
- 코멘토 #코멘토실무PT #실무PT후기 #실무강의 #리액트강의 #웹프로그래밍 #react #웹개발실무
- bucket4j
- 우아한테크코스
- AWS
- 검색
- Deep Dive
- 프로그래머스
- api 요청 수 제한
- api 비동기처리
- 프리코스
- 유효시간 설정 url
- Dev-Matching
- 타입스크립트
- redis
- oauth
- 딥다이브
- 프론트엔드 과제
- 스프링부트
- 자바스크립트
- 음악 url 파일 다운로드
- 파일 url
- 모던 자바스크립트
- 우아한 테크코스
- compateto
- concurrency limit
- NestJS
- 프론트엔드
- TypeORM
- this
- Today
- Total
개발 알다가도 모르겠네요
Laravel 파일 구조와 라우팅 본문
라라벨은 Docker을 사용하여 라라벨 프로젝트를 실행하기 위한 기본 제공 솔루션인 Sail을 제공.
Sail은 사전 Docker 경험 없이도 PHP, MySQL 및 Redis를 사용하여 라라벨 애플리케이션을 구축할 수 있는 좋은 출발점을 제공.
가장 먼저 라라벨로 만든 웹 사이트의 URL을 결정하는 라우터부터 수정해보자.
라라벨의 라우터는 최상위 디렉토리 아래에 있는 routes/web.php 파일이 우리가 수정할 대상이다.
이 파일에 아래 소스코드를 복사하여 붙여넣으면, 이후에 웹 브라우저에서 /hello/world 경로로 접속하면 "Hello World"라는 문구가 표시되는 것을 볼 수 있다.
Route::get('/hello/world', function () {
return 'Hello World';
});
먼저 이 코드는 Route라는 객체의 정적 메서드(static method)인 get()을 부르고 있다.
Route는 라라벨에서 제공하는 객체이고, get()은 이름 그대로 GET 방식으로 들어온 요청을 처리하는 메서드이다.
이 메서드는 첫 번째 인자에 담긴 경로로 사용자가 접속할 경우, 두 번째 인자로 받은 클로저(closure, 익명함수) 안의 소스코드를 실행한다. 이 때 return으로 반환하는 문자열은 그대로 응답으로 출력됩니다. 이러한 과정을 거쳐 위 코드는 사용자가 GET 방식으로 /hello/world 경로에 접근했을 때, "Hello World"라는 문구를 출력하는 것이다.
Route::get('/hello/world', function () {
return '<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8" />
<title>My first Laravel web page</title>
</head>
<body>
<b>Hello World</b>
</body>
</html>
';
});
라라벨의 라우터에는, 경로에 들어간 특정한 부분을 변수로 컨트롤러에 전달할 수 있는 특별한 기능이 있다.
이것을 라우트 파라미터라고 부르는데, 라우트 파라미터를 설정하기 위해서는, 라우터의 경로에 중괄호 {}로 감싼 부분을 넣어주면 된다.
아래의 예제를 살펴보면, 라우터의 경로에 {var}라고 하는 부분이 보이는데, 이것이 라우트 파라미터이다.
그리고 이 라우터에 연결된 HelloController의 anyone 메서드에는, 인자로 $var라는 문자열 변수가 들어있는 것을 볼 수 있다.
이 소스코드를 읽은 라라벨은 /hello/ 경로 뒤에 있는 값을 anyone 메서드의 $var 인자에 담아줄 것이다.
Route::get('/hello/{var}', [HelloController::class, 'anyone']
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class HelloController extends Controller
{
public function anyone(string $var)
{
return 'Hello ' . $var . ' on ' . date('m, d, Y') . '!';
}
}
RouteServiceProvider
라우트, 로그, 이벤트같은 것을 등록할 때 라라벨 서비스 컨테이너가 처리하는데,
여기서 라우트에 대한 서비스 프로바이더가 RouteServiceProvider.
'웹 > Laravel' 카테고리의 다른 글
Laravel에서 Social OAuth 2.0 구현하기 (0) | 2023.06.01 |
---|---|
Laravel Controller (1) | 2023.03.15 |
Laravel Sail을 알아보자 (0) | 2023.03.14 |
Windows에서 Laravel 도커 실행시 오류 문제 해결 (0) | 2023.03.08 |