Kohana 3에서는 어떻게 모듈 클래스를 재정의/확장 할 수 있습니까?Kohana에서 모듈 클래스를 재정의하는 방법 3?
예. 내 응용 프로그램과 관련된 Auth 모듈에 기능을 추가하려고합니다. 이 경우 Auth 모듈의 classes 폴더에있는 추상 Auth 클래스를 확장하려고합니다.
내 Auth 클래스에 어떤 이름 지정 규칙을 사용해야하며 파일 시스템에서 클래스 파일을 배치해야합니까?
Kohana 3에서는 어떻게 모듈 클래스를 재정의/확장 할 수 있습니까?Kohana에서 모듈 클래스를 재정의하는 방법 3?
예. 내 응용 프로그램과 관련된 Auth 모듈에 기능을 추가하려고합니다. 이 경우 Auth 모듈의 classes 폴더에있는 추상 Auth 클래스를 확장하려고합니다.
내 Auth 클래스에 어떤 이름 지정 규칙을 사용해야하며 파일 시스템에서 클래스 파일을 배치해야합니까?
이 문제를 해결하려면 Kohana 3 프레임 워크의 계층 적 특성을 이해하는 것이 중요합니다. 재정의 또는 확장 모듈에 관해서는 다음을 수행해야합니다.
Auth 모듈을 확장 해 보겠습니다. Auth 모듈 파일 시스템 구조를 보면 classes
디렉토리에 auth.php
이라는 파일이 있다는 것을 알 수 있습니다. Kohana_Auth
클래스를 확장하고 여기에
<?php defined('SYSPATH') OR die('No direct access allowed.');
abstract class Auth extends Kohana_Auth { }
Auth
라는 추상 클래스가 정의 :이 파일을 열 때 다음을 참조하십시오. 응용 프로그램에서 Auth
클래스에 대한 참조를 사용하면이 추상 클래스를 참조하게됩니다. Auth
의 실제 구현은 모듈 디렉토리 구조의 어느 부분에있는 Kohana
폴더에있는 Kohana_Auth
클래스에 실제로 보관됩니다.
Auth
모듈을 확장하려면, 즉 자신의 기능을 추가하려면 응용 프로그램 디렉토리의 classes
폴더에 auth.php
파일을 넣기 만하면됩니다. auth.php
파일에서 Kohana_Auth
클래스를 확장하여 Auth
모듈의 버전을 확장 할 수 있습니다. 그래서 같이 : 그것은이 우선하기 때문에 프레임 워크가 먼저 Auth
클래스를로드하기 때문에 때문에 프레임 워크의 계층 적 특성의
<?php defined('SYSPATH') OR die('No direct access allowed.');
class Auth extends Kohana_Auth {
public function get_user()
{
$result = parent::get_user()
// implement your functionality here.
return $result;
}
public function my_added_functionality()
{
}
}
, 모듈의 일부로 정의 된 추상 클래스 Auth
가로드되지 않습니다. 확장 한 클래스 은 범위를 벗어나거나 무시할 수있는 모든 인증 원래 기능을 제공합니다.
동작 확인에 대한 자세한 내용은 this 설명서를 참조하십시오.