PHP 프레임워크 laravel 정리


설치 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

라라벨 호출 과

  1. 사용자는 브라우저에서 http://example.com/about 페이지 요청을 한다.

  2. 사용자의 요청은 example.com이라는 이름을 가진 서버에 도착한다.

  3. 웹 브라우저가 http 프로토콜로 요청했으므로 example.com 서버의 웹 서버가 요청을 처리한다.

  • 웹 서버는 url을 해석하고 자신이 해결할 수 있는 파일이면, 파일을 읽어서 곧바로 응답한다. (css, 이미지 등)
  • 자신이 해결할 수 없는 파일이면 웹 서버 설정에 따라 작업을 php에게 넘긴다.
  • php에게 작업을 넘길 때는 index.php를 향하도록 url 경로를 변경하여 넘긴다.
  1. index.php에는 라라벨의 부팅 시퀀스가 담겨 있다.
  • 라라벨은 routes/web.php에 정의한 라우팅 테이블에서 about을 찾는다. (라우팅)
  • 일치하는 라우트가 없다면 웹 서버에게 적절한 오류 응답을 반환한다. (전역 예외 처리기)
  • 일치하는 라우트가 있다면 전역 미들웨어와 about 라우트에 정의한 라우트 미들웨어가 http 요청을 필터링한다. (미들웨어)
  • 미들웨어를 통과하지 못하면 예외가 발생한다. 전역 예외 처리기는 웹 서버에게 적절한 http 응답을 반환한다.
  • 미들웨어를 통과하면 비로소 about 요청을 처리할 컨트롤러에게 작업이 도달한다. (컨트롤러)
  • 컨트롤러는 http 요청을 처리한다. 이때 라라벨 컴포넌트, 외부 컴포넌트의 기능, 우리가 만든 기능 등을 이용한다. 처리가 끝나면 http 응답을 만들고 반환한다.
  • 컨트롤러는 요청을 처리하는 과정에 데이터베이스와 통신을 하기도 한다. (엘로퀀트)
  • 컨트롤러는 웹 서버에게 돌려줄 http 응답 본문을 만들 때 템플릿 엔진을 이용하기도 한다. (블레이드)
  1. 웹 서버는 php/라라벨 측으로부터 넘겨받은 http 응답을 브라우저에 돌려준다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다