2011-10-11 1 views
1

코드 이그니 터 (Code Igniter) 용 인증 라이브러리를 작성 중입니다. (예를 들어, 탱크 인증 또는 DX 인증과 같이 제안하지 마십시오.코드 점화 장치 확장 가능 시스템?

라이브러리에는 기본 로그인 기능이 있으며 Facebook 및 Twitter 로그인 기능도 있습니다.

그러나 Facebook 및 Twitter 로그인 코드는 라이브러리에 하드 코딩되어 있습니다. 즉, 예를 들어에 추가 할 것을 결정하면 Google 로그인 라이브러리의 핵심을 수정해야합니다. 나는 이것을 좋아하지 않는다.

Facebook 및 Twitter 로그인이 추가 될 수있는 "모듈"이되도록 라이브러리를 확장 가능하게 만들 수있는 방법이 궁금합니다.

이렇게하면 누군가가 Google 로그인 모듈을 작성할 수 있으므로 시스템의 핵심 부분을 수정할 필요가 없습니다.

어떻게 코드 점화기에서 확장 가능한 라이브러리를 만들 수 있습니까?

답변

1

이것은 codeigniter의 드라이버가이 작업에 딱 맞는 것처럼 들립니다. 설명서를 살펴보십시오. http://codeigniter.com/user_guide/general/creating_drivers.html

+0

a) 드라이버 및 b) 부모 클래스에서 드라이버를 호출하는 예를 제공 할 수 있습니까? – Hailwood

+1

[유용한 드라이버 튜토리얼] (http://www.kevinphillips.co.nz/news/codeigniter-drivers-tutorial/) – Hailwood

0

기본적으로 당신이 필요합니다 추상 클래스는 다음처럼 작성할이 특별한 경우 (체크 아웃 http://nl2.php.net/manual/en/language.oop5.abstract.php)

;

class Auth { 
    abstract function login() {} 
    abstract function logout() {} 
} 
class Twitter_Auth extends Auth { 
    function login() { // the login magic } 
    function logout() { // the logout magic } 
} 

if($login_type == 'twitter') { 
    $auth = new Twitter_Auth(); 
} else { 
    $auth = new Basic_Auth(); 
} 
$auth->login(); 

--- 당신이 kohana은 예를 들어 확장의이 유형을 처리하는 방법에 관심이있을 수 편집. auth 모듈에는 여러 드라이버가 있습니다. Checkout http://kohanaframework.org/3.2/guide/api/Auth, 이것으로 많은 것을 배울 수 있습니다!