📚
Laravel Tips
  • Introduction
  • 라라벨 생태계
    • 라라벨 발렛(Laravel Valet)에서 Node 실행하기
    • 라라벨 노바 훑어보기
    • 라라벨 노바의 Envoyer 배포의 실전
    • Envoyer에서 무중단 배포를 구현하는 방법
  • 개발 팁
    • 퍼미션 에러없이 PHP를 구동하기 위한 서버 세팅법
    • 라라벨이 애용하는 ::class 톺아보기
    • 라라벨에서의 버전의 의미
    • 라라벨 개발자를 위한 .aliases 파일
    • 라라벨 프로젝트를 만드는 두가지 방법 비교
    • PHP 스크립트를 php 명령어 없이 사용하는 법
    • 국제화의 필수 익스텐션, NumberFormatter
    • 라라벨에서 뷰헬퍼를 만들어 봅시다
  • Knowledge Acquisition
    • Error 혹은 Warning
    • NumberFormatter class example
    • Exception + Error = Throwable Tree in PHP 7 over
    • Coding Style Preset
    • Programming Case Types
Powered by GitBook
On this page
  • 라라벨의 버전이란
  • 라라벨을 설치할 때의 버전은 다르다
  • 팁. laravel/laravel 코드를 업데이트하는 방법
  • 정리

Was this helpful?

Edit on GitHub
  1. 개발 팁

라라벨에서의 버전의 의미

Previous라라벨이 애용하는 ::class 톺아보기Next라라벨 개발자를 위한 .aliases 파일

Last updated 1 year ago

Was this helpful?

라라벨의 버전은 7로 넘어오면서 약간 복잡해 진 면이 있습니다. 라라벨 커뮤니티에서도 라라벨 버전이 빠르게 올라가는 것에 대한 막연한 두려움(?)도 있는 것 같고요.

이번 글에서는 라라벨의 버전이 무엇을 말하는건지, 그리고 하나의 팁을 알려드리려 합니다.

라라벨의 버전이란

공식문서에 따르면 라라벨의 버전은 이렇게 알 수 있습니다.

php artisan --version

방금 컴포져로 업데이트를 했다면 이렇게 나와야 합니다.

Laravel Framework 7.9.2

우리가 흔히 알고 있는 라라벨의 버전은 라라벨 프레임워크의 버전이며, 에 아래와 같이 선언되어 있습니다.

<?php

// 경로 : vendor/laravel/framework/illuminate/Foundation/Application.php

class Application extends Container implements ApplicationContract, CachesConfiguration, CachesRoutes, HttpKernelInterface
{
    /**
     * The Laravel framework version.
     *
     * @var string
     */
    const VERSION = '7.9.2';

    ...
}

라라벨을 설치할 때의 버전은 다르다

Slim Framework 4 Skeleton Application
Coverage Status

Use this skeleton application to quickly setup and start working on a new Slim Framework 4 application. This application uses the latest Slim 4 with Slim PSR-7 implementation and PHP-DI container implementation. It also uses the Monolog logger.

위의 설명에서 Skeleton이라는 표현을 볼 수 있습니다.

팁. laravel/laravel 코드를 업데이트하는 방법

laravel/framework의 업데이트는 컴포져가 해 주기 때문에 composer.json파일 수정만으로 끝납니다. 문제는 우리가 처음 프로젝트를 만들 때 이용했던 laravel/laravel 코드의 업데이트겠죠. 이 부분은 라라벨 공식문서에서 Upgrade Guide라는 이름으로 제공을 했습니다.

반면, 라라벨 7은 laravel/laravel의 버전이 업데이트가 되었는데도 불구하고 특별한 가이드를 제공하지 않습니다. 물론 시멘틱 버저닝을 충실히 지킨다면 하위호환성을 보장하기 때문에 별 문제는 없을 것으로 예상합니다만, hotfix의 경우는 어떻게 처리해야 할까요?

이 부분에 대해서 새로운 버전을 받아서 diff 툴을 이용해서 merge하는 분도 있습니다. 제가 추천하는 방법은 실제로 코드의 커밋 리스트를 보고 스스로 판단하는게 좋을 것 같습니다.

laravel/laravel의 버전은 깃헙의 tag를 이용하며, 글을 쓰는 현재 등록되어 있는 버전은 아래와 같습니다.

v7.6.0
v7.3.0
v7.0.0

이 정도의 수정은 한땀한땀 처리해도 될 만한 수준이라고 생각합니다. 게다가 꼭 처리해야 하는 커밋은 그다지 많지 않습니다.

정리

composer update를 이용해서 laravel/framework를 업데이트하는 것은 수시로 하는 것이 좋은 것 같습니다. 왜냐하면 버그가 지속적으로 수정되고 있기 때문입니다.

반면 전통적으로 라라벨을 업데이트한다는 의미로서의 laravel/laravel의 업데이트는 제가 위에 소개해 드린 커밋리스트를 보시고 처리하는 것을 추천드립니다. 실제 해 보시면 몇개 되지는 않습니다.

누가 라라벨 버전을 몇 쓰는지 물어보신다고요? php artisan --version의 값을 이야기하는건 반만 맞습니다. 전 앞으로 이렇게 이야기 하려 합니다.

라라벨 버전은 7.6.0 이고, 프레임워크는 7.9.2 네요!

오늘도 즐거운 라라벨 생활 되시기 바랍니다!

라라벨 프레임워크의 저장소는 깃헙의 이며, 패키지스트에도 동일하게 등록되어 있습니다.

반면 laravel new blog 혹은 composer create-project --prefer-dist laravel/laravel blog 등으로 설치할 때에는 라라벨 프레임워크가 아닌 의 코드를 사용하며, 역시 되어 있습니다.

laravel/laravel은 라이브러리나 패키지라기 보다는 일종의 보일러플레이트 혹은 스켈레톤 입니다. 프레임워크에 따라서 이 부분을 명시적으로 표기한 것도 있는데요, 대표적으로 입니다.

깃헙이 제공하는 Compare changes를 보면 에서는 총 19개 커밋과 12개의 파일이 수정되었다고 나옵니다. 에서는 28개의 커밋과 13개의 파일이 수정되었다고 나오죠.

Allication.php 파일
laravel/framework 저장소
laravel/laravel 저장소
패키지스트에도 동일하게 등록
초소형 프레임워크로 알려져있는 Slim 프레임워크
v7.0.0과 v7.3.0과의 비교
v7.6.0과의 비교