나는 PHP 개발자입니다.. (PHP 로고) PHP 개발자가 된 동기이전에는 자바 그중에서도 Spring Framework를 쓰는 개발자였습니다. 제가 처음 PHP로 넘어올 때는 그냥 단순히 연봉을 많이 쳐준다고해서 넘어갔습니다. 자바가 질려서도 아니고, PHP가 좋아서도 아닙니다. 많은 동료들이 말렸습니다. 죽어가는 언어, 쓰지도 않는 언어, 심한 경우 쓰레기 언어라는 표현까지 써가며 말렸습니다. 그래도 당시엔 결혼을 앞둔 시기라서 높은 연봉이 필요하기에 커리어를 포기하고 PHP로 넘어갔습니다. Q. 이 글을 읽고있는 독자분은 __ 개발자인가요 ? PHP 를 처음 맞이하였을 때의 느낌 PHP를 처음 볼때 느낌은 너무 직관적이며, 너무 쉬운언어였습니다. 자바를 하다 와서 그런지 문법을 1도 모르고 왔지만..
사용자가 올린 이미지를 그대로 저장하면 문제가 금방 생긴다. 요즘 폰 사진은 한 장에 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 면 자동으로..
개발자 중에서 SEO가 뭔지도 모르는 사람도 많고, 왜 자기가 만든 사이트가 검색 엔진에 노출이 안 되는지도 모르는 사람이 많다. 설사 그 이유를 알더라도 SEO의 복잡성과 생각해야 할 게 많아서 힘들어하는 분들도 많다.여기서는 Laravel에서 SEO를 쉽게 적용시키는 패키지를 소개한다.설치composer require artesaos/seotoolsLaravel 5.5부터는 패키지 자동 등록이 되므로 config/app.php 수정 없이 바로 쓸 수 있다. 수동 등록이 필요한 구버전이라면 아래처럼 넣는다.// config/app.php'providers' => [ Artesaos\SEOTools\Providers\SEOToolsServiceProvider::class,],'aliases' => [..
기존의 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..
