2011-01-14 3 views
-1

나는 인터페이스 또는 인터페이스를 포함하는 클래스를 반환하는 PHP에서 함수를 가질 수 있는지 알고 싶습니까?PHP는 클래스 내에 인터페이스를 가질 수 있습니까?

내가 이런 식으로 뭔가를 시도했지만 실패 내가 추상 컨트롤러를 만들 수 있다면 CRUD 컨트롤러는 더 나은 구현, 또는해야하는 인터페이스를 생성, 젠드 프레임 워크,하고 싶었던 것을

<?php 
//class for list of controllers for ACL 
class Gestionale_Action_Helper_Crud extends Zend_Controller_Action_Helper_Abstract { 

    interface crud_controller 
    { 
     public function indexAction(); 
     public function modificaAction(); 
     public function cancellaAction(); 
     public function creaAction(); 
    } 


    public function getCrudInterface(){ 
     return $this->crud_controller; 
    } 
} 

및 그들이

당신이

+0

에서 Zend_Rest_Controller에 대한 자세한 읽기를 얻을 수 있습니다. 죄송합니다 - 궁극적으로 당신은 무엇을하려하십니까? –

+0

젠드 프레임 워크에서 CRUD 작업을위한 추상 모델과 CRUD 컨트롤러를위한 인터페이스를 만들고 싶습니다.이 방법은 10 개의 다른 테이블에 동일한 코드를 작성하는 대신 모델을 확장하고 인터페이스를 구현하고 특정 테이블을 구성합니다. : D – max4ever

답변

1

그냥 (바람직하게는 다른 파일에) 모든 클래스의 외부 인터페이스를 배치하고이 모든 CRUD 제어 장치에 의해 구현 될 수 있도록 감사 것을 구현할 수있다.

<?php 
class GrudController implements CrudInterface 
{ 
    // ... 
} 
+0

젠드 프레임 워크에 포함시킬 수있는 곳은 어디입니까? – max4ever

+0

컨트롤러 디렉토리에 배치하고 부트 스트랩 클래스의 오토로더를 수동으로 포함/요구하거나 클래스/인터페이스에 대한 다른 라이브러리 폴더를 검색 할 수 있습니다. 이 파일은/라이브러리/YourName/Controller/Action/Interface에 있고 YourName_Controller_Action_Interface라는 이름으로 붙일 수 있습니다 (기본적으로 zf autoloader는 밑줄을 디렉토리 분리 기호로 변환합니다). – Paul

+1

완벽하게 작동합니다. – max4ever

-1

나는 당신이하고 싶은 것을 얻을지 확신하지 않지만, 나는 당신이 잘못된 질문을하고 있다는 것을 확신합니다. 객체가 특정 인터페이스를 구현하는지 확인하기 만하면됩니다. 당신이 침전물 컨트롤러를 다루는 클래스의 일부 도우미 방법을 예를 들어 말할 수, 당신은 단지 인수 목록에서 유형을 지정합니다

class crud_helper { 
    public function help(crud_controller $cc) { 
     $cc->indexAction(); 
    } 
} 

지금 당신이 클래스의 인스턴스 인 개체를 통과 할 수 crud_controller를 메소드 도움말에 구현합니다. 다른 객체는 없습니다.

+0

필요한 건 좋은 생각이야. 염두에 두라. 좋은 생각이야. – max4ever

2

나만의 인터페이스를 만드는 대신 Zend_Rest_Controller을 사용하는 것이 좋습니다. index, get, post, putdelete :

Zend_Rest_Controller 당신은 CRUD 컨트롤러에 필요한 다섯 개 가지 기본 방법을 정의하는 추상 클래스입니다.

Zend_Rest_Route과 결합하면 멋지고 깨끗한 RESTful 응용 프로그램을 만들 수 있습니다.

당신은 내가 당신과 같이 클래스의 내부 인터페이스를 배치 할 수 없습니다 두려워 http://weierophinney.net/matthew/archives/228-Building-RESTful-Services-with-Zend-Framework.htmlhttp://techchorus.net/create-restful-applications-using-zend-framework

+0

그래, 그때는 몰랐어. 거의 모든 것을 자동으로하는 추상 클래스로서 내 rest_controller를 구현 했어. 아직도 좋은 젠드 생각을 알고 좋은 – max4ever

관련 문제