appkr / l5code

라라벨로 배우는 실전 PHP 웹 프로그래밍 (출판용 소스코드)
MIT License
63 stars 38 forks source link

[OLD & NOT APPLICABLE] 책과 달리 라라벨 5.4, 5.5, 5.6, 5.7, 5.8로 시작하시는 분들은 이 브랜치를 참고해주세요. #14

Closed appkr closed 3 years ago

appkr commented 7 years ago

이 문서는 유효하지 않습니다. 이슈 목록에서 Docker 문서를 참고해주세요.


Laravel 5.3

책과 같은 라라벨 5.3 버전을 사용하시려면 아래 명령으로 프로젝트를 시작하시면 됩니다.

$ composer create-project "laravel/laravel:5.3" myapp --prefer-dist --verbose

Laravel 5.4, 5.5, 5.6, 5.7

직접 업그레이드해 본 결과, 책에 쓴 예제 코드는 라라벨 5.4, 5.5, 5.6, 5.7에서도 약간의 변경만으로 작동합니다.


Laravel 5.8

5.8로 마이그레이션한 후, UI 및 PHPUnit 테스트는 작동합니다.

그런데, JwtAuth 0.5 버전이 라라벨 5.8에서 작동하지 않은 것으로 확인됩니다. JwtAuth 1.0 버전으로 변경하면 라라벨 5.8과 문제없이 작동하지만, JwtAuth의 API가 변경되어, 변경된 사용법에 맞춰서 예제 코드를 변경해야 합니다.

또, 라라벨 5.8부터 users.id 컬럼이 INTEGER에서 BIG INTEGER로 변경되었습니다. 따라서, users.id 컬럼을 참조하는 스키마 마이그레이션을 아래와 같이 변경해야 합니다. 테렌님이 제보해주셨습니다.

p83. 코드 10-1 database/migrations/TIMESTAMP_create_articles_table.php

 class CreateArticlesTable extends Migration {
     public function up()
         Schema::create('articles', function (Blueprint $table) {
             $table->increments('id');
-            $table->integer('user_id')->unsigned()->index();
+            $table->unsignedBigInteger('user_id')->index();
             // ...

p295. 코드 28-1 database/migrations/TIMESTAMP_create_comments_table.php

 class CreateCommentsTable extends Migration {
     public function up() {
         Schema::create('comments', function (Blueprint $table) { 
             $table->increments('id'); 
-            $table->integer('user_id')->unsigned()->index();
+            $table->unsignedBigInteger('user_id')->index();
             // ...

p310. 코드 28-20 database/migrations/TIMESTAMP_create_votes_table.php

 public function up() {
     Schema::create('votes', function (Blueprint $table) { 
         $table->increments('id'); 
-        $table->integer('user_id')->unsigned();
+        $table->unsignedBigInteger('user_id');
         // ...
ghost commented 6 years ago

질문있습니다. Composer Create-Project 통한 설치를 해서 5.5버전을 설치할 때 보면 parsedown extra라는 외부 컴포넌트가 설치가 안되지만 "composer global require "laravel/installer""를 통해 라라벨 최신버전을 설치하게되면 이러한 외부컴포넌트가 같이 설치됩니다. 그리고 작가님의 책을 공부하다보면 parsedown extra같은 외부컴포넌트를 설치한다는 말씀이 없어서 한동안 해매는 경우가 있던데 책에서 사용된 외부 컴포넌트 같은 것들이 더 많이 있는지 싶어서 질문 남깁니다.

appkr commented 6 years ago

@DevMunbe 님,

composer global require ...할 때 프로젝트가 의존하는 컴포넌트가 설치된다는 질문은 이해되지 않습니다. 전역(global) 패키지를 설치할 때는 전역 패키지가 의존하는 컴포넌트들만 설치됩니다.

composer create-project ... 할 때는 명령문에서 정의한 최상위 패키지만 다운로드 받아지며, 다운로드가 끝난 후 composer install 명령을 통해, 방금 받은 최상위 패키지가 의존하는 컴포넌트들을 설치해 줘야 합니다.

책의 예제 코드가 의존하는 외부 컴포넌트는 아래 링크에서 확인할 수 있습니다. https://github.com/appkr/l5code/blob/master/composer.json

ghost commented 6 years ago

image

이러한 오류가 발생한 경우 'connections' => [

'sqlite' => [ 'driver' => 'sqlite', 'database' => env('DB_DATABASE', database_path('database.sqlite')), 'prefix' => '', ],

'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), //'charset' => 'utf8mb4', //'collation' => 'utf8mb4_unicode_ci', 'charset' => 'utf8', 'collation' => 'utf8_general_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ], 이렇게 config폴더에서 database파일을 수정 하던데 5.5버젼 외에 다른 버젼도 이런건지 아님 email을 유니크로 정해져서 그런건가요???

appkr commented 6 years ago

@DevMunbe 님, 예제 코드와 직접적 관련이 없는 일반적인 개발 질문은 모던퍼그 질답게시판을 이용해 주시면, 더 많은 분들이 질문과 답을 공유할 수 있습니다.

질문하신 내용에 대한 답은 여기를 참고하세요. https://wiki.modernpug.org/display/LAR/questions/14025460/86%ED%8E%98%EC%9D%B4%EC%A7%80-%EB%9D%BC%EB%9D%BC%EB%B2%A8-5.4-%EC%9D%B4%EC%8A%88-1071-specified-key-was-too-long-max-key-len-gth-is..-

ghost commented 6 years ago

DB 마이그레이션하는데 오류가 있어서 질문드렸었는데 죄송합니다. 코드 20-1부터 20-8까지에서 docs/foo를 했는데 이미지가 웹페이지에 나오질 않고 installation.md파일 내용만 지속적으로 뜨고 $ php artisan cache:clear로 캐쉬를 지우고 다시 새로고침 했더니 이미지가 나오던데 캐쉬때문에 그런지 궁금해서 질문 올립니다. 또 한가지 특이사항이 $ php artisan cache:clear를 하고나서 docs/foo을 먼저 웹페이지에 띄우면 docs를 url에 입력해도 지속적으로 아래와 같은 화면이 유지됩니다. image 캐쉬의 문제인 것 같은데 정확하지 않아서 궁금합니다.

appkr commented 6 years ago

@DevMunbe 아래 링크 참고 바랍니다.