PHP-如何编写在其他项目中可用的用户类?
我正在用PHP开发电报机器人。在我的所有项目,我需要检查用户注册状态,如果没有注册,存储用户信息。对于每个项目,我都一次又一次地写下这个步骤 是否有任何方法可以编写一个在其他项目中可用(稍作改动)的用户类,并避免这种重复 这是我的密码PHP-如何编写在其他项目中可用的用户类?,php,dry,Php,Dry,我正在用PHP开发电报机器人。在我的所有项目,我需要检查用户注册状态,如果没有注册,存储用户信息。对于每个项目,我都一次又一次地写下这个步骤 是否有任何方法可以编写一个在其他项目中可用(稍作改动)的用户类,并避免这种重复 这是我的密码 // File: index.php $user = User::isRegistered($this->telegram->UserID()); if ($user === false) { $this->user = User::r
// File: index.php
$user = User::isRegistered($this->telegram->UserID());
if ($user === false) {
$this->user = User::register($this->telegram);
} else
$this->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)中更改最少的情况下执行此操作。创建一个类文件,并定义要在此类文件中重复使用的函数。
将此文件导入到要使用此函数的文件中,并使用此类文件的对象调用该函数向我们显示您重复编写的内容?已更新,已添加示例代码。这是怎么回事<代码>用户表字段在每个项目中都是不同的,因此对于在其他项目中存储新用户,我应该更改user::register的所有字段。。bt请确保在您要使用该功能的任何地方导入文件,我正在寻找的方法不会编辑原始类。是否有任何方法可以编写一个不需要在新项目中编辑
register
方法的数据库字段的类?您可以根据需求向函数发送参数,并根据该函数中的需求检查条件。希望这能奏效