2016-08-02 8 views
-1

Google은 코드의 약 90 %를 공유하는 두 개의 사이트를 실행하려고합니다. 비즈니스 도메인은 동일하지만 UI가 약간 다릅니다. 따라서 서로 다른 CSS를 사용하게됩니다.다른 UI가있는 공유 코드베이스

어떻게 코드베이스를 관리하여 코드가 필요합니까?

+0

실례지만 건축가로서 귀하의 질문에 태그를 붙였습니다. 모든 것이 똑같지 만 UI가 아키텍처 적 질문이 있다면? 관련 "공유 된"코드베이스를'include()'하는 것과 같이? 이 글은 현재 충분한 문맥이없는 질문입니다 ... – kayess

+0

@ close-voters 이것은 광범위하게 들릴지 모르지만, 실제로 응답 할만큼 구체적입니다. [여기] (http://meta.stackoverflow.com/a/323828/576767)를 확인하십시오. 관련 태그는 다르지만 원칙은 동일합니다. PHP 코드 공유는 PHP 생태계와 관련하여 특별한 관심사입니다. –

답변

1

하는 일반적인 방법에는 두 가지 작곡가의 종속성을 관리하는 등의 라우터와 같은 패키지 예를 들어

, 모든 응용 프로그램 수준 코드, 검증, 도메인 엔티티 매핑을 관리 할 수있는

  • 구조의 공유 부분 Composer 종속성은 Packagist입니다. 코드가 오픈 소스가 아닌 경우 private repos를 의존성으로 사용할 수 있습니다.

    그러면 각 사이트마다 다른 repo가 ​​생기고 동일한 부품이 작곡가를 사용하여 제작되고 실제로 다른 부품 만 코딩하게됩니다. 서로 다른 도메인에 두 대의 서버가있을 것입니다.

    이것은 작성자와 코드를 통한 더 많은 구성을 의미합니다.

     
    repo 1 
        /app 
         /viewSpecificToOne 
        /public 
         /cssSpecificToOne 
         /jsSpecificToOne 
         index.php 
        /vendor 
         /[dependencies installed through composer] 
    repo 2 
        /app 
         /viewSpecificToTwo 
        /public 
         /cssSpecificToTwo 
         /jsSpecificToTwo 
         index.php 
        /vendor 
         /[dependencies installed through composer] 
    
    • 같은 REPO

    이 다른 솔루션에 가까운 모든 사이트를 관리,하지만 당신은 같은 도메인 매퍼를 사용하는 것이 다른 전면 컨트롤러에 다른 경로를 보낼 것입니다 , 검증 (validation), 라우터 (router) 등을 포함하지만 두 가지 다른 View 레이어가 있습니다.

    이것은 두 개의 공용 repos에서 각 도메인을 서비스하기 위해 서버에서 더 많은 구성을 의미합니다.

     
    Repo 
        /app 
         /view1 
          /viewLogicSpecificToOne 
         /view2 
          /viewLogicSpecificToTwo 
        /public1 
         /cssSpecificToOne 
         /jsSpecificToOne 
         index.php 
        /public2 
         /cssSpecificToTwo 
         /jsSpecificToTwo 
         index.php 
        /lib 
         /sharedPackages