설치 composer 이용
composer laravel/laravel myproject
cd myproject
php artisan serve localhost:8000 에서 접속 가능
.env
데이터베이스 설정 다른 DB_* 는 삭제하고 DB_CONNECTION=sqlite
Laravel Breeze
composer require laravel/breeze –dev
php artisan breeze:install blade
vite development server
npm run dev
데이터베이스 초기화
php artisan migrate
config/app.php
database/database.sqlite
model 만들기
php artisan make:model -mrc Chirp
파일 3개 만들어진다. app/Models/Chirp.php – The Eloquent model. database/migrations/<timestamp>_create_chirps_table.php – The database migration that will create your database table. app/Http/Controller/ChirpController.php – The HTTP controller that will take incoming requests and return responses.
Routing
routes 디렉토리
index, store 라는 route를 만들겠다.
index: chirps 목록 store: new chirps 저장
2개의 미들웨어 뒤에 위치시키겠다.
auth 미들웨어 : 권한 체크해서 로그인한 회원만 접근할 수 있도록 verified 미들웨어 : 이메일 verification 하려면 사용
routes/web.php
데이터베이스 migration
깨끗하게 처음 미그레이트 상태로
php artisan migrate:fresh
Artisan Tinker
REPL (Read-eval-print loop)
start tinker session
php artisan tinker
콘솔에서 laravel 에 접근해서 임의의 코드를 실행시켜볼 수 있다.
(base) ➜ chirper php artisan tinker Psy Shell v0.12.0 (PHP 8.3.1 — cli) by Justin Hileman
App\Models\Chirp::all() = Illuminate\Database\Eloquent\Collection {#6000 all: [], }
App\Models\Chirp::all() = Illuminate\Database\Eloquent\Collection {#6004 all: [ App\Models\Chirp {#5982 id: 1, user_id: 1, message: “첫번째 철프!!”, created_at: “2024-01-18 14:24:18”, updated_at: “2024-01-18 14:24:18”, }, ], }
exit
라라벨 호출 과
-
사용자는 브라우저에서 http://example.com/about 페이지 요청을 한다.
-
사용자의 요청은 example.com이라는 이름을 가진 서버에 도착한다.
-
웹 브라우저가 http 프로토콜로 요청했으므로 example.com 서버의 웹 서버가 요청을 처리한다.
- 웹 서버는 url을 해석하고 자신이 해결할 수 있는 파일이면, 파일을 읽어서 곧바로 응답한다. (css, 이미지 등)
- 자신이 해결할 수 없는 파일이면 웹 서버 설정에 따라 작업을 php에게 넘긴다.
- php에게 작업을 넘길 때는 index.php를 향하도록 url 경로를 변경하여 넘긴다.
- index.php에는 라라벨의 부팅 시퀀스가 담겨 있다.
- 라라벨은 routes/web.php에 정의한 라우팅 테이블에서 about을 찾는다. (라우팅)
- 일치하는 라우트가 없다면 웹 서버에게 적절한 오류 응답을 반환한다. (전역 예외 처리기)
- 일치하는 라우트가 있다면 전역 미들웨어와 about 라우트에 정의한 라우트 미들웨어가 http 요청을 필터링한다. (미들웨어)
- 미들웨어를 통과하지 못하면 예외가 발생한다. 전역 예외 처리기는 웹 서버에게 적절한 http 응답을 반환한다.
- 미들웨어를 통과하면 비로소 about 요청을 처리할 컨트롤러에게 작업이 도달한다. (컨트롤러)
- 컨트롤러는 http 요청을 처리한다. 이때 라라벨 컴포넌트, 외부 컴포넌트의 기능, 우리가 만든 기능 등을 이용한다. 처리가 끝나면 http 응답을 만들고 반환한다.
- 컨트롤러는 요청을 처리하는 과정에 데이터베이스와 통신을 하기도 한다. (엘로퀀트)
- 컨트롤러는 웹 서버에게 돌려줄 http 응답 본문을 만들 때 템플릿 엔진을 이용하기도 한다. (블레이드)
- 웹 서버는 php/라라벨 측으로부터 넘겨받은 http 응답을 브라우저에 돌려준다.