카테고리 : 젠드 프레임 워크

젠드 프레임 워크는 단위 모듈 기반 설정

에 의해 , 금요일 2010년 1월 1일 오후 10시 40분

제가 적은 구성이 필요합니다이 게시물에 대한 follow-up을 만들었습니다, 참조하시기 바랍니다 젠드 프레임 워크 - 모듈 기반 레이아웃 .

사용할 때 젠드 프레임 워크를 사용자가 동일한 응용 프로그램에서 다양한 (하위) 사이트를 운영중인 경우는 반드시 같은 원하지 않는 모듈은 명백한와 레이아웃 스크립트 의 각 부분을. 필자의 경우는 다음 사이트 구조로 결정 :

  / 신청
     / 컨트롤러
         ...
     / 모델
     / 모듈
         / 기본
             / 컨트롤러
             / 레이아웃
                 / 스크립트
             / 전망
                 / 스크립트
         / anotherModule
             ...
     / 스크립트

문제는 당 모듈 단위로 배치 스크립트를 설정했다. 대답은 액션 도우미를 사용 다가왔습니다. 당 모듈 단위로 레이아웃을 설정하는 것은 세 단계를 포함 :

  1. Application.ini (또는 이와 유사한 구성 설정) :
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ 모듈 / 관리자 / 레이아웃 / 스크립트"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ 모듈 / 기본 / 레이아웃 / 스크립트"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ 모듈 / 회원 / 레이아웃 / 스크립트"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ 모듈 / 제휴 / 레이아웃 / 스크립트" 
  2. 귀하의 액션 도우미를 만들기 :
      <? PHP
     / **
      * 당 모듈 단위로 레이아웃 경로를 설정합니다
      *
      * @ 작성자 로이드 왓킨 <lloyd@evilprofessor.co.uk>
      * @ 2010년 1월 1일 이후
      * /
     수업 Pro_Controller_Action_Helper_SetLayoutPath
         Zend_Controller_Action_Helper_Abstract 확장
     {
         / **
          * 모듈을 기반으로 레이아웃 경로를 설정합니다
          * /
         공용 함수 preDispatch ()
         {
        	 $ 모듈 = $이 -> getRequest () -> getModuleName ();
    
    	     면 ($ 스트랩 = $이 -> getActionController ()
    	                        -> getInvokeArg ( '부트 스트랩')) {
    
    	         $ 설정 = $ 스트랩 -> getOptions ();
    
    	         경우 (isset ($ 설정 [$ 모듈] [ '자원'] [ '레이아웃'] [ 'layoutPath'])) {
    	             $ layoutPath =
    	                  설정 $ [$ 모듈] [ '자원'] [ '레이아웃'] [ 'layoutPath'];
    	             $이 -> getActionController ()
    	                  -> getHelper ( '레이아웃')
    	                  -> setLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. 그리고 마지막으로 작업 도우미를 boostrap :
      ...
         / **
          * 당 모듈 기반으로 레이아웃 스크립트를 설정합니다
          * /
         보호 기능 _initLayoutHelper ()
    	 {
    	     $이 -> 부트 스트랩 ( 'frontController');
    	     $ 레이아웃 = Zend_Controller_Action_HelperBroker : addHelper (
    	         새로운 Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

교리 : 지금 날짜 _ 시간 기본 ()

에 의해 , 수요일 2009년 12월 30일 오후 6시 반

나는 새위한 데이터베이스 스키마를 설정 어려움을 겪고 있었 젠드 프레임 워크 프로젝트를 만듭니다. 사용 사용하려는 교리의 내 데이터베이스 모델 ORM합니다. 내가 현재 타임 스탬프를 새 메시지를 추가할 때 그것이 나를 예를 들어``열 날짜 _ 시간에 대한 기본 날짜와 시간을 설정할 수 있도록 그 스키마를 설정해야합니다. 나는 그것을 공유하고있어 많은 검색 및 실험 후 솔루션을 발견했습니다.

사용자 스키마에서 YAML의 파일을 간단하게 다음을 수행 :

 메시지 :
   actAs :
     Timestampable :
       만든 날짜 :
         이름 : created_at
         유형 : 타임 스탬프
         형식 : Ymd H : I : S
       업데이트 :
         이름 : last_updated
         유형 : 타임 스탬프
         형식 : Ymd H : I : S
   열 :
     ID :
       종류 : 정수
       기본 : 사실
       autoincrement : 사실
     이름 : 문자열 (255)
     이메일 : 문자열 (300)
     메시지 : 문자열 (2000)

반면에 당신이`updated_at`컬럼을하지 않으려면 다음을 사용할 수 있습니다 :

 메시지 :
   actAs :
     Timestampable :
       만든 날짜 :
         이름 : created_at
         유형 : 타임 스탬프
         형식 : Ymd H : I : S
       업데이트 :
         사용 불가 : 사실
   열 :
     ID :
       종류 : 정수
       기본 : 사실
       autoincrement : 사실
     이름 : 문자열 (255)
     이메일 : 문자열 (300)
     메시지 : 문자열 (2000)

젠드 프레임 워크 : 기본 - 검토

에 의해 , 토요일 2009년 11월 28일 오후 10시 42분

내 고용주는 최근 받아 우리 개발자 그룹에 대한 지불 젠드 프레임 워크 : 기본의 과정을, 내가 다른 사람을위한 코스에 내 생각과 의견을 요약합니다. 시간을 절약하고자하는 사람들을 위해, 여기 내 요약은 다음과 같습니다

볼 시간이 없었 개발자를위한 젠드 프레임 워크 의 핵심 지역을 소개하고 계속하기 위해 충분한 정보를 제공 프레임 워크의 좋은 전반적인 그림을 제공합니다 :이 코스 (기본 젠드 프레임 워크를.) 프레임 워크를보고 시간을 할애하고 하나 또는 두 개의 튜토리얼을 따라 사람들을 위해이 과정은 더 이상 제공하지 않습니다.

배경

나는 있었어 PHP 5-6 주변 년 동안 개발하고, 지난 6 개월 동안 구성 요소 기준으로 젠드 프레임 워크 작업을 시작했습니다. 제가 개발 및 / 또는 작은 젠드 프레임 워크의 커플에서 개발자가 있었 MVC 나는 솔직히 말하면 sites.Â, 난보기의 코딩 지점에서 다른 프레임 워크에 노출이 많은 없었지만, 몇 가지를 보냈어 시간은 프로젝트 웹사이트를 연구 them.Â에게 그것이 매우 흥미로운이며 어디가는에 큰 가능성이있을 것 프레임 워크와 젠드 프레임 워크를 둘러싼 지역 사회를 평가.

코스 소개

이 과정은 (중간에 10 분 휴식과) 9 이시간 웹엑스 세션을 통해 전달됩니다. 시간은 언제든지 토론과 젠드에서 제공하는 슬라이드 세트 겪고 소비됩니다. 당신은 강사 얘기를 마이크를 사용할 수 있지만, 나는 사람이 채팅 창에 이상의 아무것도를 사용하여 보지 못했어요 솔직히 말해서. 또한 VM웨어 우분투 머신은 그 예제 코드를 가지고 있으며 프로젝트는 젠드 스튜디오의 평가판을 설치 제공됩니다. 통합의 VoIP 솔루션을 통해, 또는 숫자에서 많은 세계적인 다이얼 중 하나를 사용하여 전화를 걸 수 중 참석자들에게 코스 리더 이야기합니다.

과정에서 물질이 샘플 응용 프로그램에 방명록 표제 전에 프레임 워크에 대한 간략한 개요 및 MVC 패턴으로 구성됩니다. 토론 부트 스트랩, Zend_Application, DB 테이블, 데이터베이스 액세스, 양식, 필터링, ACL은 기본적으로 당신이 당신에게 도구를 제공 실행되는 모든 시간을 최대 기본적인 사이트를 얻을 필요가있는 모든 주제를 다루는 등, 등, 확인 시연 가서 (이것은 당시의 많은 '웹사이트보기'를 금액했지만) 프레임 워크에 더 많은 고급하십시오.

시간은 몇 가지 예제를 코드하고있는 '방명록'간단 '위키'응용 프로그램을 개발하기 위해 주어집니다. 필자는 개인적으로 코드 또는 각 응용 프로그램을 제공하고 정말 좋은 학습 경험을 제공하지 않았 함께 본질적으로 복사했는지 개발하기 위해 우리를 요청하는 것을 느꼈습니다. 나는 유사한 응용 프로그램을 개발하기 위해 선호하지만 동일하지 않은 것입니다. 참조에 대한 안내를 갖는 혜택 예제 응용 프로그램. 또는 시위 운동자와 함께 처음부터 애플 리케이션을 구축하는 것은 가능한 모든 후 과정 후 내역을 찾아볼 수 있습니다, 따라서 프레임 워크의 이해를주는 이유와 방법에 대한 자세한 질문에 LED 것입니다.

마지막 강의는 강사의 도움 / 지침으로 위키 응용 프로그램에서 작업 구성되어. 과정의 피드백을 찍은 후, 그것은 사실에 분명히 과정 우리의 버전이 매우 새로운 되었음 젠드 매우 진지하게 의견 소요되는 과정을 통해 여러 번 강조했다. 회사의 다른 개발자 중 일부는 곧 따라서 이것이 일어 났는지 흥미로운 될 과정을 복용합니다.

물론 스타일은 참석자와 강사 간의 피드백과 협력 허용 비공식했다. 코스 리더 친절 했어, 가까이 (이메일 주소는 질문에 대해 공유했다), 그리고 슬라이드에서 자신의 프레 젠 테이션이 사그라 들자면 흔들리는 조금은 프레임 워크에 완전히 관할 듯했다. 그는 명확하게 오히려 과정을 가르치고 배운 것입니다 사람보다 정기적으로 프레임 워크를 사용하는 사람이되었다, 그 존중의 '현실'의 경험을 좋아했다.

전체 느낌

어떤 면에서 나는 과정을 시간의 낭비를 발견 다른 매우 편리한했습니다. 다행스럽게도 필자는 분명 전역 이유를하고, 어쩌면 생각 또는 의견을 유용한 몇 가지 음식을 (이 가능성은 거의 나를 알고!) 제공합니다.

자신을위한이 과정은 너무 낮은 수준을 목표로했다. 빠른 가이드를 통과하는 데, 액션의 롭 알렌의 젠드 프레임 워크를 읽고 조금은 정말 너무 아무것도 못 프레임 워크와 함께했습니다. 나는의 빠른의 마지막에서 픽업 및 추가 기술을 개발하는 과정을 좋아합니다.

했다 즉, 코스 제목은 명백히 "젠드 프레임 워크 : 기본"을 않는 그 관점의 과정은 그것이해야 할 설정 어떻게 실현하고 있습니다. 프레임 워크에보고 시간을 할애하지 않은 개발 팀의 다른 구성원들은 열정과 각 세션을 완료하고 실제로 봐서 반가웠어요 질문.

모든 이것은 프레임 워크의 기본적인 세부 사항을 확인하는 시간을 할애하고 100 % 아니었 분야에서 몇 가지 물어가는 좋았어요, 분실되지 않았습니다. ) : 제가 매일 앉아서, 나는의 (? 귀하의 회사가 그것에 동의 상상할 수) 달리 할 수​​ 없었던 것입니다 무언가를 프레임 워크와 미래의 프로젝트를 사용하여 코딩에 대해 생각하고있어 그 또한 시간이었다. 마지막으로 당신은 또한 과정을 (이메일이라도) 참석한 것을 말할 젠드에서 좋은 자격증을 취득.

젠드 프레임 워크 인증

이 과정 중에 마음에 나왔 대요 질문이 하나 있었고, 인증 절 준비시겠습니까? 빠르고 쉬운가 resounding 없음입니다. 코스 강사 인증 정말로 일 기준으로 하루에 프레임 워크를 사용하여 매우 편안하고는 사용 및 방법에 확신해야한다는 추가 조언을 거기에 매우 분명했습니다.

개요

제가 위에 쓴 모든 걸 감안할 때,이 두 쉽게 글머리 기호에 모든 요약주지

  • 젠드 프레임 워크 새 :이 과정은 정확히 기대하는지, 그것이 당신에게 프레임 워크에 대한 좋은 소개하고 구축할 수있는 기본에 좋은 접지를 제공 않습니다. 과정은 관심과 개발자 사이에서 프레임 워크에 대한 열의를 생성하는 것 같습니다.
  • 젠드 프레임 워크를 사용하여 : 그것은 물론 더 나은 다른 지출되었습니다 걸릴 수 난 시간과 노력을 느꼈다 아주 기본의 일부, 그리고 자금을 강화하기 위해 좋은 동안. 그것은 다음 단계로 개발자을 위해 새로운 높은 수준의 코스를 만들 see 젠드에 좋은 것입니다 -. 적어도 인증 이후의 기준으로 그 동안 나는 즉시 가입 것입니다.

젠드 프레임 워크를 사용하여 DB에 로그

에 의해 , 화요일 2009년 4월 14일 오후 9시 6분

제가 사이트를 얻을 수 있었다 것과 같이 실행 젠드 프레임 워크 , 모든 불을 지르고 / FirePHP 때문에 다음 단계는 DB에 로그인하는 것이었을 멋지게 로깅됩니다. 나는 또한 사용자 에이전트, 날짜 및 시간,하고 변수를 게시와 같은 프레임 워크를 사용하여 몇 가지 추가 정보를 기록 싶었어요. 그럼 여기가 조금은 내가 무슨 짓을했는지의 설명서를 확장 :

// Set up logging to DB
$db = Zend_Registry ::get('dbAdapters');
$db = $db['general'];

$ = 배열​​ ( '우선'=> '우선순위', columnMapping
'메시지'=> '메시지'
'날짜 _ 시간은'=> '기록',
'user_agent'=> 'user_agent'
'get_vars'=> 'get_vars'
'post_vars'=> 'post_vars'
'사이트'=> '사이트'
);

$ writerDb = 새로운 Zend_Log_Writer_Db ($ DB, 'error_logging'columnMapping $);
$ 로거는 = 새로운 Zend_Log ($ writerDb);

$ 로거 -> setEventItem ( '날짜 _ 시간', 날짜 ( 'Ymd H : I : S'));
$ 로거 -> setEventItem ( 'user_agent', $ _SERVER [ 'HTTP_USER_AGENT']);
$ 로거 -> setEventItem ( 'get_vars'방법인 print_r ($ _GET 사실));
$ 로거 -> setEventItem ( 'post_vars'방법인 print_r ($ _POST, 사실));
$ 로거 -> setEventItem ( '사이트, 사이트);

$ 로거 -> 정보 ( '정보 메시지');

$ columnMapping에서 배열 키를 내 열 이름입니다 어디에. '우선순위'와 '메시지'로 인식됩니다 Zend_Log_Writers 하지만 추가 필드는 나에게 몇 가지 추가 정보를 제공하기 위해 추가되었습니다.

분명히 이것은 먼저 다른 작가 중 하나를 사용하여 작업 로깅했다고 가정합니다 :)













파노라마 테마로 Themocracy

12 방문자가 온라인으로 지금
10 손님, 2 봇, 0 회원
최대 방문자 오늘 : 세계 협정시 오전 2시 2분 16
이번 달 : 2011년 1월 9일 2시 2분에서 16 세계 협정시 오전
올해 : 28-03-2011 세계 협정시 오후 10시 40분시 130
모든 시간 : 28-03-2011 세계 협정시 오후 10시 40분시 130