개발자는 도구만 잘 써도 생산성이 배로 올라간다. PHP의 대표적인 IDE인 PhpStorm은 기능이 워낙 많아서, 설치해놓고 메모장처럼만 쓰는 경우가 의외로 많다.가장 좋은 학습 자료는 Laracasts의 무료 시리즈다.How to Be Awesome in PhpStorm여기서는 그중에서도 익히면 체감이 확 오는 것들만 추려본다.1. 이동 관련 단축키 (이것만 외워도 절반)마우스로 파일 트리를 뒤지는 시간이 하루에 얼마나 되는지 생각해보면, 여기가 가장 효율이 좋다.Shift Shift — Search Everywhere. 파일·클래스·설정·액션 전부 검색Cmd/Ctrl + B — 정의로 이동. 메서드 이름에서 누르면 구현부로Cmd/Ctrl + Alt + B — 구현체로 이동. 인터페이스에서 실제 구현..
사용자가 올린 이미지를 그대로 저장하면 문제가 금방 생긴다. 요즘 폰 사진은 한 장에 5MB를 넘고, 목록 화면에서 원본을 그대로 뿌리면 로딩이 느려진다. 세로로 찍은 사진이 가로로 뒤집혀 보이는 문제도 흔하다.Laravel에서 이미지를 다룰 때 표준처럼 쓰이는 게 Intervention Image다. 리사이즈, 크롭, 회전, 워터마크, 포맷 변환을 전부 지원한다.설치composer require intervention/imagev2와 v3의 사용법이 꽤 다르다. 신규 프로젝트라면 v3를 쓰는 게 좋다.v2 (레거시)v2는 서비스 프로바이더와 파사드를 수동 등록해야 했다.// config/app.php'providers' => [ Intervention\Image\ImageServiceProvide..
IDE로 Laravel을 개발할 경우 자동완성 및 goto 기능을 지원해주는 패키지다. 파사드와 Eloquent 매직 메서드 때문에 IDE가 타입을 못 잡는 문제를 해결해준다.왜 필요한가Laravel은 편의성을 위해 PHP의 동적 기능을 적극적으로 쓴다. 문제는 IDE가 정적 분석으로 타입을 추론하는데, 이런 코드는 분석이 안 된다는 점이다.파사드 — Auth::user() 는 실제로 __callStatic으로 뒤에서 인스턴스에 위임한다. IDE는 Auth 클래스에 user()가 없다고 본다Eloquent 매직 메서드 — User::where() 는 모델이 아니라 쿼리 빌더의 메서드다모델 속성 — $user->email 은 DB 컬럼이라 클래스에 프로퍼티 선언이 없다매크로 — 런타임에 등록되는 메서드ID..
Laravel로 개발할 때 가장 먼저 까는 패키지를 하나만 고르라면 나는 Laravel Debugbar를 고른다. 에러 페이지, 뷰, 세션, 쿠키, 실행된 쿼리까지 한 화면에서 볼 수 있다. 특히 중복 쿼리를 잡을 때 많이 쓴다.설치composer require barryvdh/laravel-debugbar --dev--dev를 반드시 붙인다. 개발 의존성으로 설치해야 운영 배포 시 composer install --no-dev 에서 빠진다.# .envAPP_DEBUG=trueDEBUGBAR_ENABLED=trueLaravel 5.5 이상은 패키지 자동 등록(auto-discovery)이 되므로 config/app.php에 프로바이더를 수동으로 추가할 필요가 없다. APP_DEBUG=true 면 자동으로..
기존의 Alert을 스윗하게 해주는 Sweet Alert 라라벨 버전 # Composer Install$ composer require uxweb/sweet-alert # config/app.php 설정 'providers' => [ UxWeb\SweetAlert\SweetAlertServiceProvider::class, ]; 'aliases' => [ 'Alert' => UxWeb\SweetAlert\SweetAlert::class, ]; # yarn & npm install $ yarn add sweetalert --dev // &npm install sweetalert --save-dev #customize $ php artisan vendor:publish --provider "UxWeb\Swe..
블로그를 직접 만들어본 기록이다. 티스토리나 워드프레스를 쓰면 될 일이지만, 프레임워크를 제대로 익히는 데는 완결된 서비스를 처음부터 끝까지 만들어보는 것만 한 게 없다.저장소https://github.com/yousung/blog개발 환경PHP : 7.1Framework : Laravel 5.6Cache : Redis 또는 MemcachedDB : MySQL지금 기준으로 보면 전부 구버전이다. PHP 7.1은 2019년에 보안 지원이 끝났고 Laravel 5.6도 마찬가지다. 당시 스택 기록으로 남겨둔다.블로그를 직접 만들면 배우는 것들블로그는 학습용 프로젝트로 꽤 좋은 주제다. 단순해 보이지만 웹 서비스의 기본 요소가 거의 다 들어간다.1. 인증과 권한글 작성은 관리자만, 조회는 누구나. 이 단순한 ..
