我是OOP的初学者,现在我正在尝试编写一些PHP类来连接FTP服务器。PHP-OOP扩展两个类?
class ftpConnect {
private $server;
private $user;
private $password;
private $connection_id;
private $connection_correct = false;
public function __construct($server, $user = "anonymous", $password = "[email protected]") {
$this->server = $server;
$this->user = $user;
$this->password = $password;
$this->connection_id = ftp_connect($this->server);
$this->connection_correct = ftp_login($this->connection_id, $this->user, $this->password);
if ((!$this->connection_id) || (!$this->connection_correct)){
echo "Error! Couldn't connect to $this->server";
var_dump($this->connection_id);
var_dump($this->connection_correct);
return false;
} else {
echo "Successfully connected to $this->server, user: $this->user";
$this->connection_correct = true;
return true;
}
}
}
我觉得这个阶级的身体在此刻是微不足道的。
主要问题是我对理解OOP的想法有些问题。
我想在代码运行时每次都添加发送电子邮件。我已经下载PHPMailer Class和扩展我的课吧:
class ftpConnect extends PHPMailer {...}
我增加了一些变量和方法,一切都会按预期到这一点。
我想:为什么不添加存储在数据库中的一切。每次用户运行代码时,都应该在数据库中存储适当的信息。
我可以编辑我的ftpConnect class
并添加连接到构造函数的数据库,以及其他一些更新表的方法。但是数据库连接和所有这些东西将来可能会被其他类使用,所以它绝对应该在单独的类中实现。 但我的“主”ftpConnect class
已扩展到一个类,不能再扩展一个。
我不知道如何解决这个问题。也许我的ftpConnect class
是复杂的,我应该把它分成几个小班? 任何帮助,非常感谢。
你正在创建什么叫做神** **的对象,这是一个单一的对象,它是负责一大块(或整个)应用程序。这不好。 *每个对象应该有一个单一的责任,就是它*。想要邮寄?有一个不同的对象。想要保存到数据库?有一个不同的对象。您可以通过构造函数或方法将引用传递给对方来连接它们。这就是**依赖注入**。看看它。 –
独立专业对象没问题,就像我们不期望一位大学教授教所有*大学科目一样。 – wallyk