Je développe Telegram Bot en PHP. Dans Tous mes projets, j'ai besoin de vérifier le statut de l'utilisateur et, s'il n'est pas enregistré, de stocker les informations utilisateur. pour chaque projet, j'ai écrit cette étape encore et encore.PHP - Comment écrire une classe User utilisable dans d'autres projets?
Existe-t-il des moyens d'écrire une classe d'utilisateurs utilisable (avec un peu de changement) dans d'autres projets et d'éviter cette répétition?
Ceci est mon code.
// File: index.php
$user = User::isRegistered($this->telegram->UserID());
if ($user === false) {
$this->user = User::register($this->telegram);
} else
$this->user = $user;
Et cette ma classe 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;
}
}
, mais les utilisateurs tableau déposé sont différents dans chaque projet afin de stocker un nouvel utilisateur dans d'autres projets que je dois changer tous les champs de User::register
. comment je peux éviter cela? je veux écrire une classe cela fonctionne avec le changement le plus bas dans la classe d'origine (User.php).
Montrez-nous ce que vous écrivez à plusieurs reprises? –
Mise à jour, exemples de codes ajoutés. –