라라벨 관련 내용

2024. 5. 30. 21:23개발/PHP

명령어

# 마이그레이션 관련 명령어
## 테이블 생성
php artisan make:migration create_user_info_table --create=user_info

## 테이블 수정
php artisan make:migration modify_users_table --table=users

## 마이그레이트(db에 반영)
php artisan migrate

## 마이그레이트 롤백
php artisan migrate:rollback

############################################################################################

# livewire 설치 및 사용
## livewire 설치
composer require livewire/livewire

## livewire component 생성
php artisan make:livewire ExampleComponent

############################################################################################

## laravel debugbar
composer require barryvdh/laravel-debugbar

php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"

## laravel telescope (라라벨 모니터링 기능)
composer require laravel/telescope

php artisan telescope:install
php artisan migrate ## migration
php artisan optimize:clear

## db 설정 후 php artisan migrate 실행
## {domain}/telescope 접속하면 화면 노출 됨

#######################################################################################

## 명령어 모음
# 기본 컨트롤러
php artisan make:controller PostController

# 리소스 컨트롤러( index/create/store/show/edit/update/destroy )
php artisan make:controller PostController -r

# API 전용 리소스 컨트롤러( create/edit 제외 )
php artisan make:controller PostController --api

# 단일 액션( __invoke ) 컨트롤러
php artisan make:controller PublishPostController -i

# 모델을 연결해서 타입힌트/리소스 메서드 골격 생성
php artisan make:controller PostController -r --model=Post

# (선택) 요청 폼 리퀘스트도 같이 만들어달라면 (라라벨 버전에 따라)
php artisan make:controller PostController -r --model=Post --requests


# 기본 모델 (app/Models/Post.php)
php artisan make:model Post

# 모델 + 마이그레이션
php artisan make:model Post -m

# 모델 + 마이그레이션 + 리소스 컨트롤러
php artisan make:model Post -mcr

# 모델 + 팩토리 + 시더
php artisan make:model Post -fs

# 한 번에 전부( migration, factory, seeder, controller, resource )
php artisan make:model Post -a

# 피벗 모델(중간 테이블용 관례)
php artisan make:model PostTag --pivot


# 테이블 생성 마이그레이션
php artisan make:migration create_posts_table --create=posts

# 테이블 수정(컬럼 추가/변경 등)
php artisan make:migration add_published_at_to_posts_table --table=posts


# 테이블 생성 마이그레이션
php artisan make:migration create_posts_table --create=posts

# 테이블 수정(컬럼 추가/변경 등)
php artisan make:migration add_published_at_to_posts_table --table=posts


# 특정 경로(모듈/패키지 등)로 생성
php artisan make:migration create_logs_table --create=logs --path=database/migrations/logs


# 적용
php artisan migrate

# 상태 확인
php artisan migrate:status

# 최근 배치만 롤백(기본 1단계)
php artisan migrate:rollback

# 단계 지정 롤백
php artisan migrate:rollback --step=2

# 전체 리셋(모든 마이그레이션 롤백)
php artisan migrate:reset

# 새로고침(리셋 후 다시 migrate)
php artisan migrate:refresh
php artisan migrate:refresh --seed   # 시더 함께 실행

# 완전 새로(모든 테이블 드랍 후 migrate)
php artisan migrate:fresh
php artisan migrate:fresh --seed

# 단일 파일만 적용(경로 지정)
php artisan migrate --path=database/migrations/2025_10_29_123456_create_posts_table.php

# 다른 커넥션으로 실행
php artisan migrate --database=mysql_replica

# 운영 환경에서 강제 실행(주의)
php artisan migrate --force


# 시더 만들기
php artisan make:seeder PostSeeder

# 시더 실행(기본 DatabaseSeeder 호출)
php artisan db:seed

# 특정 시더만 실행
php artisan db:seed --class=PostSeeder

# 마이그레이션과 함께 시더
php artisan migrate --seed

# 팩토리 만들기
php artisan make:factory PostFactory --model=Post


# 1) 새 리소스 한 방에 세팅(모델/마이그/컨트롤러/팩토리/시더)
php artisan make:model Post -a

# 2) 모델 + 리소스 컨트롤러까지
php artisan make:model Comment -mcr

# 3) 테이블 생성 -> 마이그레이트 -> 기본 데이터 투입
php artisan make:migration create_tags_table --create=tags
php artisan migrate --seed


# 라우트 목록 보기
php artisan route:list

# 캐시/설정 캐시 비우기
php artisan optimize:clear

# Tinker(인터랙티브 콘솔)
php artisan tinker

 

관련 내용 (psr 과도 관련이 있음)

- 클래스명 : StudlyCase(또는 PascalCase) 사용, PSR-1 및 PSR-4 권장 사항

ex) php artisan make:controller UserController

- 함수 및 메서드 : camelCase

ex) getUser(), getUserInfo()

- 변수 : camelCase (전역 및 지역 변수 모두 동일)

ex) userInfo, socialUserInfo 등

- 상수 : UPPER_SNAKE_CASE 또는 SCREAMING_SNAKE_CASE 사용

ex) MY_CONSTANT

 

## 라라벨 로그 일별로 남기는 방법 ##

logging.php > default 항목을 아래 코드로 변경

'default' => env('LOG_CHANNEL', 'daily')

.env 파일에서 LOG_CHANNEL 을 아래 코드로 변경

LOG_CHANNEL=daily

로그폴더 CHMOD, CHOWN 수정

chmod -R 775 storage/logs

chown -R www-data:www-data storage/logs

테스트로 로그 남겨보기

use Illuminate\Support\Facades\Log;

메서드에서 호출 : Log::info('MainController::index() called');

 

대량할당 & 개별할당

- 대량할당 : Model에 정의 된 테이블에 일괄적으로 데이터를 처리하는 방식

-- 문제점 : 처리하지 않아야 하는 필드 데이터도 처리해야 하는 경우

--- 이 부분은 해결할 방법으로 fillable, guarded로 처리

---- fillable : 가장 많이 사용하는 방식

---- guarded : 보호해야 할 필드가 몇개 되지 않는 경우

- 개별할당 : Model에 정의 된 테이블의 각 필드별로 하나씩 데이터를 처리하는 방식

 

자동 빌드 되도록 처리

- blade 템플릿에서 tailwind css 및 markup 변경 시 npm run build 를 하지 않으면 수정이 안될 수 있음

- php artisan serve & npm run dev 같이 실행해 놓으면 자동 빌드 됨