আপনার সমস্ত শ্রেণীর তাদের প্রকৃত অবস্থানের চেয়ে আলাদা করা উচিত, যাতে আপনি এগুলিকে সহজেই ঘুরতে পারেন এবং অন্য প্রকল্পগুলিতে এগুলি পুনরায় ব্যবহার করতে পারেন।
আমি একটি ক্লাস তৈরি করব যা অন্য ক্লাসগুলিকে কী পাথ বা ইউআরএল ব্যবহার করতে হবে তা জানায়, এটি একটি ইন্টারফেস বাস্তবায়িত করুক যাতে আপনি অন্যান্য থিমগুলিকে পুনরায় ব্যবহার করতে পারেন এমনকি থিমে বা ওয়ার্ডপ্রেসের বাইরেও।
ইন্টারফেসের উদাহরণ:
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 ) {}
তারা এখন কেবল পাস করা দৃষ্টান্ত থেকে ইউআরএল এবং পথে অ্যাক্সেস করছে।
class.Plugin_Controller.php
ফাইলটি উচ্চ ডিরেক্টরিতে প্রয়োজনীয় হওয়া দরকার, তাই না?