Laravel ORM의 단점 - Eloquent

6578 단어

#100DaysOfCode 2일 차


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

  • 학습



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

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

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

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

    관련 GitHub 문제12

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

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

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

    이야기의 교훈?



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

    후기



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

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

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



    더 이상 사용할 수 없는 기사





    HypeTracker 리포지토리


    jcsho / 과대 추적기


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












    HypeTracker는 애프터마켓에서 사고 파는 운동화에 대한 소셜 미디어 '노출'에 대한 데이터 집계 애플리케이션입니다.
    내 블로그 자세히 보기what HypeTracker iswhy 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

    좋은 웹페이지 즐겨찾기