laravel v5.2 -> v5.3 -> v5.4 upgrade issue
TRANSCRIPT
Laravel
Upgrade issuetyle - 박관웅
Upgrading To v5.3 from v5.2
upgrade guide
"laravel/framework": "5.3.*"
"symfony/css-selector": "3.1.*"
composer update 패키지
php artisan view:clear
php artisan route:clear
project cache clean
upgrade
guide
"symfony/dom-crawler": "3.1.*"
"php": ">=5.6.4",
App\Providers\EventServiceProvider
App\Providers\RouteServiceProvider
App\Providers\AuthServiceProvider
boot 메서드에인자삭제삭제한인자는 Facade 형식으로호출
Auth Scaffolding
https://github.com/laravel/laravel/tree/5.3/app/Http/Controllers/Auth
아래깃헙에서 4개의 Auth Controller 를프로젝트에 Ctrl - C,V 한다.
App\Http\Controllers\Controller.php
AuthorizesResources Trait 삭제
새로운 Notifiaction 서비스
config/app.php
Illuminate\Notifications\NotificationServiceProvider::class 등록
User 메일전송할경우
User.php에use Illuminate\Notifications\Notifiable
Notifiable Trait 추가
routes 정책변경
https://github.com/laravel/laravel/tree/5.3/routes
프로젝트 root에 routes 폴더생성web.php
api.php
파일생성(아래깃헙참고)
Route::controller 와같은암시적인선언 deprecated
명시적으로모든라우팅메서드작성(아래참고)
https://laravel.kr/docs/5.3/upgrade#5.2-deprecations
https://github.com/laravel/laravel/blob/5.3/app/Providers/RouteServiceProvider.php
기존에 routes.php 에서 routes 폴더를통해구분하기때문에RouteServiceProvider.php 수정해야한다. (아래깃헙파일과동일하게작성)
Password Reset Link Notification 변경
Auth 정책이세분화되면서 Password Reset Link Email Notification 도세분화되었다.
Custom한 email 을전송하는법변경
이슈사항
해결방법
“php artisan make:notifiaction PasswordReset”
커맨드를통해 Password Reset Email Notification 클래스생성원하는 form과양식을 Custom하게수정하여전송한다.(아래가이드참고)
https://laravel.kr/docs/5.3/notifications#mail-notifications
Controller Constructor 에서 Session
v5.3에서는 middleware가실행되지않기때문에세션(및 Auth관련)은 constructor에서 access 불가
이슈사항
해결방법
closure 기반 middleware를 constructor에직접정의하여해결
Database - query builder
query builder는기존에순수배열을반환하는대신Illuminate\Support\Collection 를반환
이럼으로써 query builder와 Eloquent 와일관성획득
이슈사항
해결방법
기존방식을원할경우아래와같이 ‘all()’ 을추가한다.
middleware - ‘can’ namespace 변경
HTTP Kernel.php에정의되어있던 ‘can’ 미들웨어변경문제
이슈사항
해결방법
HTTP\Kernel.php -> $routeMiddleware에아래와같이
‘can’ 네임스페이스변경
Exception - Unauthenticated 메소드
App\Exceptions\Handler 클래스에 unauthenticated 가새롭게추가됨
이슈사항
해결방법
인증관련 exception을 HTTP응답으로변환해준다.
Upgrading To v5.4 from v5.3
upgrade guide
"laravel/framework": "5.4.*"
"phpunit/phpunit": "~5.7"
composer update 패키지
php artisan view:clear
php artisan route:clear
project cache clean
upgrade
guide
tinker 가사라졌다.
기존 ‘php artisan tinker’ 커맨드를사용하면안된다.
이슈사항
해결방법
기존커맨드를사용하기위해선 laravel/tinker 패키지설치해야한다.
composer 로설치이후, config/app.php 에 serviceprovider 등록한다.
Guzzle version upgrade
기존 Guzzle 패키지에서업그레이드해야한다.
이슈사항
해결방법
Guzzle version +6.0 이상으로변경
Container - bind, instance를통한 alias
기존엔 aliasing을위해 bind/instance 사용하여인자로배열을전달하였다.
이슈사항
해결방법
이제부턴 alias 메소드를사용하여해결하는걸로변경(Facade 생성할때 serviceprovider에서이용)
Container - share 메서드레거시로등극
ServiceProvider에 share를통해인스턴스등록하던것레거시로등극
이슈사항
해결방법
share 메서드대신에 singleton 메서드로변경
Mail Class 사용방식변경
이슈사항
해결방법
mailables 방식으로변경되어야한다.
아래주소참고
형식대로사용하던방법변경
https://laravel.kr/docs/5.4/mail
끝