2017-12-30 56 views
0

지금 당장은 인터넷 검색을 해왔지만 문제는 해결할 수없는 것 같습니다. Codeigniter 인스턴스에 2 개의 응용 프로그램 (백엔드 및 프론트 엔드)이 있습니다. CodeIgniter 3 응용 프로그램 패키지간에 핵심 모델 공유

  • 프런트 엔드
  • 백엔드는

지금 내가 유사성이

  • 웹 루트/응용 프로그램 :

    그래서 나는이 같은 내 응용 프로그램 폴더를 설정 한 모델과 같은 2 가지 응용 프로그램. 그래서 난은 "일반적인"패키지를 만들어 다음과 같이 (I 어디 정확히 기억하지 못하는, 인터넷 어딘가에 그것을 할이 방법을 발견) :

    • 웹 루트/응용 프로그램을
      • 프론트 엔드를 (표준 CodeIgniter의를 구조)
      • 백엔드 (CodeIgniter의 기본 구조)
      • 일반
        • 구성/
        • helpe RS/
        • 언어/
        • 라이브러리는/
        • 모델/

    이 적절하게 자동으로 적재 도착하고 난 뒤와 프론트 엔드 사이의 모델 등을 공유 할 수 있습니다. 하지만 이제 MY_Model을 소개하고 싶습니다. MY_Model은 응용 프로그램 폴더 내부의 core 디렉토리에 배치해야합니다 (설명서 참조). 물론 3 가지 응용 프로그램 패키지를 통해 모델을 공유하고 싶습니다. (필자는 front-end와 back-end의 모델을 확장하기를 원하지만 공통 패키지의 모델도 필요합니다.)

    이것은 내가 막힐 곳입니다. 나는 common 응용 프로그램 패키지에 core 폴더를 넣으려고했으나 common 패키지의 모델로 확장 할 수 없습니다.

    Class 'MY_Model' not found in /webroot/application/common/models/News_model.php on line 11 
    

    다른 어느 패키지에서도 확장 할 수없는 것 같습니다.

    Class 'MY_Model' not found in /webroot/application/backend/models/Ad_model.php 
    

    나는 MY_model 클래스 3 회를 복제하고 3 개 개의 파일을 내가 몇 가지 새로운 기능을 추가 할 때마다 편집 싶지 않다.

    이 문제를 해결할 방법이 있습니까? 나는 그것을 이해하는 것 같다.

    감사합니다.

답변

0

외부로 코어 디렉토리를 이동하고 심볼 링크를 각 구조로 다시 연결할 수 있습니다.

$ ln -s {common/core} {frontend/core} 
$ ln -s {common/core} {backend/core} 
+0

Symlinking은 선택 사항이 아닙니다.그것의 공유 호스팅 및 나는 server.Good, 감사 덕분에 모든 쉘 액세스를 가지고 있지 :) 감사합니다 – Clemenz

+0

그냥 하나의 파일면; 각 위치에 파일을 넣고 외부에 파일을 포함시킬 수 있습니다. – Phright

+0

당신은 수동으로'require_once'를 하시겠습니까? 하지만 여전히 파일을 변경하면 다른 파일을 편집해야한다는 사실을 기억해야합니다. 또한 복제를 줄이거 나 도입하지 않기를 바랍니다. – Clemenz