모든 수업을 실제 위치와 독립적으로 만들어야하므로 쉽게 이동하고 다른 프로젝트에서 재사용 할 수 있습니다.
다른 클래스에 사용할 경로 또는 URL을 알려주는 클래스를 만들고 인터페이스를 구현하여 테마에서 또는 WordPress 외부에서 다른 클래스를 재사용 할 수 있습니다.
인터페이스의 예 :
interface DirectoryAddress
{
/**
* @return string Dir URL with trailing slash
*/
public function url();
/**
* @return string Dir path with trailing slash
*/
public function path();
}
플러그인의 구체적인 구현은 다음과 같습니다.
class PluginDirectoryAddress implements DirectoryAddress
{
private $path;
private $url;
public function __construct( $dirpath )
{
$this->url = plugins_url( '/', $dirpath );
$this->path = plugin_dir_path( $dirpath );
}
/**
* @return string Dir URL with trailing slash
*/
public function url() {
return $this->url;
}
/**
* @return string Dir path without trailing slash
*/
public function path() {
return $this->path;
}
}
이제 기본 플러그인 파일에서 해당 클래스의 인스턴스를 만듭니다.
$address = new PluginDirectoryAddress( __DIR__ );
그리고 다른 모든 클래스는 생성자의 인터페이스에 다음과 같이 종속성이 있습니다.
public function __construct( DirectoryAddress $directory ) {}
그들은 전달 된 인스턴스에서만 URL과 경로에 액세스하고 있습니다.
class.Plugin_Controller.php
상위 디렉토리의 파일이 필요합니까?