我正在PHP中開發Telegram Bot。在我的所有項目中,我需要檢查用戶註冊狀態,如果未註冊,請存儲用戶信息。對於每個項目,我一次又一次地寫下這一步。PHP - 如何編寫可在其他項目中使用的用戶類?
有沒有什麼方法可以編寫一個在其他項目中可用(稍微改變一點)的用戶類並避免這種重複?
這是我的代碼。
// File: index.php
$user = User::isRegistered($this->telegram->UserID());
if ($user === false) {
$this->user = User::register($this->telegram);
} else
$this->user = $user;
這我的User類
// File: User.php
class User
{
public static function isRegistered($telegram_id)
{
$user = SlmUsers::find()->where(['telegram_id' => $telegram_id])->one();
if ($user)
return $user;
return FALSE;
}
public static function register(\Telegram $telegram)
{
$nickname = $telegram->FirstName() . ' ' . $telegram->LastName();
$nickname = mb_substr($nickname,0,128);
$user = new SlmUsers();
$user->telegram_id = $telegram->UserID();
$user->nickname = $nickname;
$user->telegram_username = $telegram->Username();
$user->message_id = 0;
$user->updated_at = date('U');
$user->last_request = 'new';
$user->save();
return $user;
}
}
但申請表格的用戶在每個項目不同,因此在其他項目中儲存新的用戶我應該改變的User::register
所有領域。我該如何避免這種情況?我想寫一個類做這個工作原點類(User.php)的最低變化。
向我們展示,您正在重複寫什麼? –
已更新,已添加示例代碼。 –