Laravel ORM의 단점 - Eloquent

6578 단어

#100DaysOfCode 2일 차


  • Laravel에서 HypeTracker의 데이터베이스에 대한 작성migrations을 완료했습니다.
  • Laravel의 ORM인 Eloquent를 사용하기로 결정했기 때문에 각 클래스Model에 대한 뮤테이터를 추가하는 작업을 하고 있습니다.

  • 학습



    마이그레이션에서 composite (primary) keys을 사용할 수 있지만 Eloquent ORM 모델 클래스에 사용할 수 있는 옵션이 아니라는 것을 알았습니까?

    매우 흥미로운 블록이며 조사하기로 결정했습니다.

    지원되지 않는 사용 및 해결 방법을 설명하는 thisthread on stackoverflow을 찾았습니다(5년 넘게 요청되었습니다!).

    물론 오픈소스 프로젝트이기 때문에 그때부터 구현이 되었는지 저장소를 살펴보고 싶었습니다.

    관련 GitHub 문제1 및 2

    기본적으로 아직 아무것도 수행되지 않았습니다.

    그러나 그것은 오픈 소스 프로젝트의 특성일 뿐이며 프로젝트가 클수록 진행 속도가 느려집니다. 특히 그들이 이것을 문제가 아닌 것으로 볼 때.

    물론 현재 작업을 모두 포기하고 폐기하지는 않을 것입니다. 지금은 해결 방법을 사용하고 어떻게 진행되는지 확인했습니다.

    이야기의 교훈?



    ORM은 데이터베이스 쿼리를 추상화하는 데 도움이 될 수 있으며 프로그램을 "데이터베이스에 구애받지 않는"프로그램으로 만들지만 문제가 발생하면 업스트림 또는 기본적으로 "공급업체 잠금"에 의존하게 됩니다.

    후기



    Commets에서 ORM 또는 원시 SQL을 사용하는지 알려주세요!

    DEV 또는 트위터에서 내 여정을 따라가세요!

    2년 된 프로젝트를 리팩토링하는 이유 읽기



    더 이상 사용할 수 없는 기사





    HypeTracker 리포지토리


    jcsho / 과대 추적기


    공용 API(Twitter, Reddit)에서 데이터를 읽고 시각화를 형성하는 풀 스택 웹 애플리케이션












    HypeTracker는 애프터마켓에서 사고 파는 운동화에 대한 소셜 미디어 '노출'에 대한 데이터 집계 애플리케이션입니다.
    내 블로그 자세히 보기what HypeTracker is 및 why I am refactoring it

    V2의 변경 내역 / 목표



  • 데이터베이스 스키마 마이그레이션 PR#4 참조

  • 내부 스니커즈 API 마이그레이션 PR 참조#7

  • 프런트 엔드 마이그레이션 PR#17 참조
  • 데모로 배포/v2로 푸시
  • 소셜 미디어 API 스크래핑 추가

  • 시작하기


    요구 사항


    주택


  • PHP ^7.3
  • 작곡가 ^1.10.13
  • Vagrant ^2.2.10(가상화 레이어 선택 가능)
  • (예시) VirtualBox ^6.1.14(Vagrant의 VirtualBox 공급자 포함)
  • $ git clone https://github.com/justinhodev/hype-tracker.git
    $ cd hype-tracker
    
    # Install Composer Dependencies
    $ composer install
    
    # Prepare config for Homestead
    $ composer homestead
    
    # Provision the VM
    $ vagrant up
    
    # SSH into Vagrant Box
    $ vagrant ssh

    도커


    곧

    데이터베이스 엔티티 관계 모델



    특허






    View on GitHub

    좋은 웹페이지 즐겨찾기