[英]Possible to dynamically set the name of a class?
我有一個 mediawiki 和 phpbb 安裝,我成功地集成了單點登錄。
問題是他們都有一個用戶 class,所以在 mediawiki 中,當我調用 phpbb 時,它給出了 class 重新裝修錯誤。
我通過檢查 mediawiki 是否正在加載文件來解決這個問題。 如果是,則調用名為 phpbb_user 的用戶 class 的完整副本。 但我想知道是否有更好的方法。 這就是它目前的工作方式
if (!defined('FROM_MEDIAWIKI')){
class User extends session{
//user class code
}
}else{
class phpbb_user extends session{
//exact copy of user class code
}
}
有沒有更好的方法來做到這一點,不需要用戶 class 的 2 個副本?
我知道你不能這樣做,但你能做類似的事情嗎?
$className = (defined('FROM_MEDIAWIKI'))? 'phpbb_user' : 'User';
class $className extends session{
//user class code
}
這有點小技巧,但你可以有一個基礎 class,如果定義了所有內容。 然后,您只需從該 class 擴展空子類,從而更改其名稱而無需保留重復代碼。
class __user extends session {
// user class code
}
if (!defined('FROM_MEDIAWIKI')){
class User extends __user {}
}else{
class phpbb_user extends __user {}
}
不過,我希望看到更好的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.