Итак, у меня есть какой-то глупый вопрос, я видел проблемы и разные вещи при создании CMS, и я хочу сделать CMS OOP, и мне было интересно, может ли кто-нибудь объяснить мне, в чем разница между использованием один из двух примеров?Различные способы создания функции Connect в классе?
Пример 1 -
class myClass
{
var $username;
var $password;
public function connect()
{
try {
$pdo = new PDO('mysql:host=localhost;dbname=dbname', $this->username,
$this->password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
} catch(PDOException $e) {
echo 'Error: ' . $e->getMessage();
}
}
}
// Then to call that function
$obj = new myClass();
$obj->username = "root";
$obj->password = "password";
$pdo = $obj->connect();
// Then run my query down here
Ex 2 -
class database
{
protected $connection = null;
//make a connection
public function __construct($hostname,$dbname,$username,$password)
{
try {
//MySQL with PDO_MYSQL
$this->connection = new PDO("mysql:host=$hostname;dbname=$dbname",
$username, $password);
$this->connection->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
$this->connection = null;
die($e->getMessage());
}
}
}
Или я даже видел, как люди используют __construct то отдельная функция подключения Так что же разница? Есть ли преимущество в производительности, делая это определенным образом? Или есть способ, который является более правильным, чем другой, или все три, если эти неправильные способы сделать это? Я не нашел надежного источника, чтобы найти ответ.
Я не уверен в производительности, но я сделал бы это второй способ, поэтому у класса есть свое собственное соединение, и вам не нужно управлять им внешне, как в примере. –