- How to Laravel Version Upgrade
* 버전 정보 ( Laravel History )
Laravel : PHP : PhpUnit
5.7(18/09) : >= 7.1.3 : 7.0
- 이메일 인증 지원
- 관리메뉴 - Laravel Nova
5.6(18/02) : >= 7.1.3 : 7.0
- 부트스트랩 4 적용
5.5(17/08) : >= 7.0.0 : 6.0
- LTS
- React JS Preset
5.4(17/01) : >= 5.6.4 : 5.0
5.3(16/08) : >= 5.6.4 ~ 7.1 : 5.0 <==
- app/http/routes.php -> routes/web.php로 변경
5.2(15/12) : >= 5.5.9 ~ 7.1 : 4.0
5.1(15/06) : >= 5.5.9 : 4.0
//===============
// 라라벨 역사
https://en.wikipedia.org/wiki/Laravel
Version Release date PHP version
1.0 June 2011 NA
4.0 May 28, 2013 ≥ 5.3.0
5.0 February 4, 2015 ≥ 5.4.0
5.1 LTS June 9, 2015 ≥ 5.5.9
5.5 LTS August 30, 2017 ≥ 7.0.0
- React Preset
5.6 February 7, 2018 ≥ 7.1.3
- 부트스트랩 4 적용
5.7 September 4, 2018 ≥ 7.1.3
- 이메일 인증 지원
- 관리메뉴 - Laravel Nova
//------------------------------
https://github.com/laravel/framework/blob/7ca29256b85a910585ab7492d22365c1c5a8e29b/CHANGELOG-6.x.md
https://github.com/laravel/framework/releases
1.0 - 2011.06
2.0 - 2011.09
3.0 - 2012.02
4.0 - 2013.05
5.0 - 2015.02
5.1 - 2015.06 (LTS)
5.2 - 2015.12
5.3 - 2016.08
5.4 - 2017.01
5.5 - 2017.08 (LTS)
5.6 - 2018.02
5.7 - 2018.09
5.8 - 2019.02.27
6.0 - 2019.09.03 (LTS)
7.0 - 2020.03.03
8.0 - 2020.09
- v9부터 2년간만 지원
9.0 - 2022.02
10.0 - 2023.02
11.0 - 2024 (예정)
//================
* 라라벨 버전 확인
php artisan --version
//===============================================
* 이전 버전 라라벨 설치(업그레이드시 참고용)
- 현재 업그레이드 할 사이트와 비교용, 필요시 파일 복사
- 설치예) 5.1 버전 설치
composer create-project laravel/laravel lara5.1 5.1
//===============================================
* 모든 업그레이드의 공통된 방법
- composer.json 수정후 "composer update" 명령
- composer update 명령후 (Updateing dependencies... 메시지 후) 10분이상 걸릴수도 있다.(인내심 필요)
- 사용중인 사이트의 composer.json 과 라라벨 기본 설치본(업그레이드 할 버전)의 composer.json을 맞춘다.
- 사이트의 필요 패키지는 유지( 별도 추가 ) : 최신버전 확인 필요
- 에러가 나면 에러난 패키지를 composer.json에서 제거 하고 업데이트 한후
제거한 패키지를 별도로 설치
//===============================================
//===============================================
< v5.1 -> v5.2 >
라라벨 코리아 - 5.1에서 5.2.0 으로 업그레이드 하기
https://laravel.kr/docs/5.2/upgrade
https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0
- composer.json 파일 수정
laravel/framework 5.2.* 로 변경
require-dev 섹션에 다음을 추가
"symfony/dom-crawler": "~3.0"
"symfony/css-selector": "~3.0"
- 파일 수정
config/app.php 수정
//Illuminate\Routing\ControllerServiceProvider::class, 주석처리
- composer update
//=================
- 에러 메시지
Class 'Illuminate\Routing\ControllerServiceProvider' not found
해결책 : ControllerServiceProvider는 더 이상 안씀
config/app.php 수정
//Illuminate\Routing\ControllerServiceProvider::class, 주석처리
//===============================================
lesstif - Laravel 5.1 에서 5.2 로 업그레이드 하기 (추가 에러 수정)
https://www.lesstif.com/pages/viewpage.action?pageId=30703765
- "Undefined variable: $errors"
해결책 : ShareErrorsFromSession 미들웨어 추가
기본 미들웨어 그룹인 'web'에 ShareErrorsFromSession 가 포함되어 있음
Route::group(['middleware' => ['web']], function () {
- db:seed 시 다음 예외가 발생
[Symfony\Component\Debug\Exception\FatalThrowableError] Fatal error: Class 'Model' not found
해결책 : DatabaseSeeder 의 상단에 use Illuminate\Database\Eloquent\Model; 를 추가
//===============================================
//===============================================
< v5.2 -> v5.3 >
라라벨 코리아 - 5.2에서 5.3 으로 업그레이드 하기
https://laravel.kr/docs/5.3/upgrade
- composer.json파일 수정
laravel/framework 의존성을 5.3.* 로 변경
require-dev 섹션
symfony/css-selector 와 symfony/dom-crawler 의 의존성을 3.1.* 수정
- 옵션
"php": ">=5.5.9", -> "php": ">=5.6.4",
"phpunit/phpunit": "^4", -> "phpunit/phpunit": "~5.0",
- 파일 복사
- 다른 위치에 라라벨 5.3 설치
composer create-project laravel/laravel lara5.3 5.3
- 설치된 5.3 버전에서 다음 파일을 비교해서 내용 교체
app/Providers/EventServiceProvider.php
app/Providers/RouteServiceProvider.php
app/Http 폴더 전체
- Kernel.php
routes 폴더 전체
app/Http/route.php 파일을 참조해서 route/web.php 수정
- composer update
//============================
- 에러 처리
//============
- 에러 메시지
Declaration of App\Providers\EventServiceProvider::boot(Illuminate\Contracts\Events\Dispatcher $events) should be c
ompatible with Illuminate\Foundation\Support\Providers\EventServiceProvider::boot()
- 해결 방법
RouteServiceProvider 와 EventServiceProvider 를 5.3 으로 교체
- 다른 위치에 라라벨 5.3 설치
composer create-project laravel/laravel lara5.3 5.3
app/Providers/EventServiceProvider.php
app/Providers/RouteServiceProvider.php
//===============
- 에러 메시지
[Symfony\Component\Debug\Exception\FatalErrorException]
App\Providers\RouteServiceProvider::App\Providers\(): Failed opening required 'routes
/web.php' (include_path='.;C:\php\pear')
- 해결방법
5.3 버전에서 routes 폴더 복사
//===============
- 에러 메시지
ReflectionException in Container.php line 749: Class web does not exist
- 해결 방법
5.3 버전에서 app/Http/Kernel.php 파일 복사
//===============
- 에러 메시지
FatalErrorException in Controller.php line 13:
Trait 'Illuminate\Foundation\Auth\Access\AuthorizesResources' not found
- 해결 방법
app/Http/Controllers/Controller.php 수정
AuthorizesResources 관련 항목 삭제
//===============================================
//===============================================
< 5.3 --> 5.4 >
5.3에서 5.4.0으로 업그레이드 하기
https://laravel.kr/docs/5.4/upgrade
- composer.json 파일 수정
laravel/framework 의존성을 5.4.* 로 변경
"require": {
"php": ">=5.6.4",
"laravel/framework": "5.4.*", <===== 변경
"laravel/tinker": "~1.0" <=== 추가
},
phpunit/phpunit 를 ~5.7 으로 업데이트
"phpunit/phpunit": "^5",
- 캐시 비우기
php artisan view:clear
php artisan route:clear
- bootstrap/cache/compiled.php 삭제
- composer update
//==========
- 에러(error) 메시지
In SlackServiceProviderLaravel5.php line 27:
Call to undefined method Illuminate\Foundation\Application::share()
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1
maknz/slack 에러
- 기능 : sending messages to Slack with incoming webhooks
- 에러 원인 : Laravel 5.4 부터 share() 대신 singleton()으로 변경
maknz/slack은 개발 중단 상태
- 에러 해결 방법 maknz/slack를 제거 하거나, 다음 사이트 것 으로 교체 한다
https://github.com/phpify/slack-laravel
설치 composer require phpify/slack-laravel
//===============================================
//===============================================
< 5.4 --> 5.5 >
5.4에서 5.5.0으로 업그레이드 하기
https://laravel.kr/docs/5.5/upgrade
- composer.json 파일 변경
laravel/framework 의존성을 5.5.* 로 변경
"require": {
"php": ">=7.0.0", <=== 변경
"laravel/framework": "5.5.*", <=== 변경
"fideloper/proxy": "~3.3", <=== 추가
phpunit/phpunit을 ~6.0 으로 업데이트
"require-dev": {
"phpunit/phpunit": "~6.0" <===== 변경
"filp/whoops": "~2.0", <===== 추가
"laravel/dusk": "^2.0", <===== 추가
symfony 관련 항목 삭제
},
scripts 부분에 다음을 추가
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
- composer update
//====================================================
//참고
5.3을 5.4, 5.5, 5.6, 5.7 로 업그레이드시 문제점 처리
https://github.com/appkr/l5code/issues/14
'Code > PHP' 카테고리의 다른 글
[라라벨] PHPUnit (2) - HTTP 웹 테스트 예제 (0) | 2018.10.11 |
---|---|
[라라벨] PHPUnit 설치, 기본 사용법 (0) | 2018.10.11 |
라라벨 설치 composer install 명령시 에러 해결 방법 (0) | 2018.10.09 |
XE3 (XpressEngine3) 사용법 - 수동 설치 방법 (0) | 2018.09.27 |
라라벨 설치 및 설정 (0) | 2018.09.27 |