phalcon 프레임 워 크 사용 안내

5067 단어 phalcon사용 강좌
phalcon 을 처음 알 게 된 것 은 phop 을 처음 배 웠 을 때 였 는데,최근 에 드디어 사용 할 기회 가 생 겼 다.그래서 사용 에 대한 느낌 을 말 해 보 자.
개인 적 으로 phalcon 이라는 프레임 워 크 방식 을 좋아 합 니 다.의존 주입 을 사용 하여 코드 조직 을 유연 하 게 하고 결합 도 낮 습 니 다.그러나 프레임 워 크 가 너무 많아 서 몇 개의 구 덩이 를 만 났 는 지 github 의 지난 1 년 이상 의 issue 도 해결 되 지 않 았 습 니 다.하지만 어느 정도 개발 경험 이 있 으 면 스스로 복구 할 수 있 습 니 다.이 몇 개의 구덩이 에 많은 시간 을 낭비 하 였 습 니 다.
첫 번 째 는 view.

  phalcon view,        ,     layout,  controller/action   ,
          ,   layout ,   controller   view  .
      view       ,        
MainView(주 layot 파일 경로+파일 이름 이지 만 확장 자 는 포함 되 지 않 습 니 다.확장 자 는 보기 엔진 에 주입 할 때 key 키 입 니 다).
LayoutsDir(layouts 의 디 렉 터 리 경로),
Layout(주 layot 파일 이름,필요 에 따라 layots 디 렉 터 리 에 있 는 파일 을 mainView 로 동적 으로 사용 할 수 있 습 니 다).
PartialsDir(partial 함 수 를 사용 할 때 템 플 릿 파일 을 찾 습 니 다.예 를 들 어 partial('main/header')은'/당신 의 partialsDir/main/header.volt'경 로 를 찾 습 니 다.)
ViewsDir(controller/action 에 대응 하 는 템 플 릿 파일 이 있 는 디 렉 터 리 를 설정 합 니 다.parialDir 와 유사 하여 디 렉 터 리 에 있 는 템 플 릿 파일 을 자동 으로 찾 습 니 다)
BasePath(보기 디 렉 터 리 의 기본 디 렉 터 리,phalcon 과 모든 설정 의 dir 에 따라 경 로 를 조합 하여 템 플 릿 파일 을 찾 습 니 다.구덩이 가 바로 이것 입 니 다)
내 가 처음에 이 view 를 사 용 했 을 때 절대 경 로 를 사 용 했 는데 절대 경로 설정 과 관리 가 비교적 편리 하기 때문이다.
그리고 나 서 나 는 구덩이 에 빠 졌 다.오후 내 내 테스트 하 는 시간 을 낭비 했다.
공식 문서 에서 보 여 준 예 에 따라 반복 적 으로 테스트 한 결과 이 view 구성 요 소 는 상대 적 인 경로 로 만 경 로 를 설정 할 수 있 고 BasePath 는 설정 하지 않 아 도 됩 니 다.
홧 김 에 phalcon 의 소스 코드 를 뒤 졌 습 니 다.개발 언어 는 Zephir,phalcon 팀 이 자체 개발 한 언어 입 니 다.
언어 문법 이 비교적 간단 하고 이해 하기 쉽다.그리고 이 문장 을 보 았 다.

..]

상대 적 인 경로 인지 절대적 인 경로 인지 판단 하지 않 고 직접 조합 한 것 처럼 여기 서 문제 가 생 긴 것 으로 추정 된다.
또한 action,layot,main layot 이 템 플 릿 파일 들 을 순서대로 해석 합 니 다.
그래서 검증 해 보 려 고 했 습 니 다.그래서 디 버 깅 파일 을 몇 개 썼 습 니 다.디 버 깅 을 하려 고 했 습 니 다.
phalcon 소스 코드 를 뒤 지 는 과정 에서 1000 자 를 생략 합 니 다.반드시 호출 될 것 이 고 경로 처리 의 몇 가지 주요 방법 이 있 습 니 다.View 와 관련 된 몇 개의 class 를 계승 합 니 다.

      ,      echo,        ,
           ,  echo        ,
    echo buff      ,      ..       log    .
내 가 테스트 한 코드 는 다 중 모듈 방식 을 사용한다.
BaseView 파일,phalcon 의 view 를 계승 하고 이 방법의 오류 메 시 지 를 엽 니 다.

BaseVolt 파일,계승 템 플 릿 엔진 volt

view 주입 코드 와 디 렉 터 리 구 조 는 그림 과 같 습 니 다.


로그 기록 은 다음 과 같 습 니 다.

페이지 출력 은 다음 과 같 습 니 다:

생각 했 던 것 처럼 절대 경 로 를 사용 할 때 어쨌든 phalcon 은 위 에서 설정 한 경 로 를 직접 연결 합 니 다.
개발 자가 controller/action 의 view 를 동적 으로 사용 하려 고 하지만 layouts 홈 디 렉 터 리 가 상위 디 렉 터 리 에 있 을 때 문제 가 발생 합 니 다.
phalcon 이 찾 는 main layot 경 로 는Phalcon\Mvc\View\Exception: View '/Users/Hin/work/phalcon_mode/app/modules/admin/views/layouts/main' was not found in the views directory내 가 원 하 는 것 은/Users/Hin/work/phalcon_mode/app/views/layouts/main그리고 경 로 를 찾 지 못 하면 main layot 템 플 릿 파일 이 작 동 하지 않 습 니 다.
  ,               ..  ,        ,        .
phalcon view 소스 코드 의 세 가지 변수 중 basePath,viewdir(관건 은 작가 가 viewdir 라 는 변수 에 대한 이해 가 잘못 되 어 bug)를 기본 적 인 경로 로 보 는 것 입 니 다.viewpath 는 순서대로 실행 합 니 다enginrender 시의 action view,layot view,main view 의 경로.
이 걸 이해 하면 스스로 경 로 를 천천히 설정 할 수 있 을 거 야.................................................

       .

       View  phalcon View,    .      action    ,     viewDir   .
     phalcon  ,       ( _enginRender         ,  _enginRender        )
   ,   ,        (   basepath,viewsDir       action view,      , layoutsDir partialsDir      )

github        bug issue,       ......
화려 한 분할 선
두 번 째 는 모델.
또 하나의 구덩이 가 있 습 니 다.phalcon 에 관 한 model 입 니 다.똑 같이 issue 가 나 왔 습 니 다.작 가 는 관여 하지 않 았 습 니 다.
문서 model 에 따 르 면 setter 링크 설명 방법 을 제 공 했 지만 실제로 setter 는 작 동 하지 않 습 니 다.
   view  ,     ...

    setter getter        ,         ,     .
        model controller        ,  setter getter,              ,
model     , model     ,controller     .             .
그러나 이 틀 로 개발 한 프로젝트 가 요절 하고 더 깊 은 구덩이 도 만 나 지 못 했다.의외 의 일이 없 었 다 면 당분간 사용 하지 않 았 을 것 이다.
요즘 기분 이 안 좋아.편 하 게 써.기록 으로........................................................
마지막 으로github소스 코드 를 직접 동봉 합 니 다.다 모듈 모델 개발 은 이런 디 렉 터 리 구조 로 도 좋 습 니 다.다른 사람 에 게 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기