我正在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)的最低变化。
向我们展示,您正在重复写什么? –
已更新,已添加示例代码。 –