Peço a opinião de vocês quanto ao nível de abstração da classe abaixo.
Criei o objeto e me retornou sucesso.
Quero entender em que nível estou pra saber a hora de partir para novos paradigmas como por exemplo o design pattern que algo que sempre ouço falar mas nunca parei pra estudar o conceito e uso.
$config = new Configuration('hostname', 'hostUsername', 'hostPassword', 'database', 'email', 'password');
<?php class Configuration extends ReceiveDataConfiguration { public function __construct($hostname, $hostUsername, $hostPassword, $database, $email, $password) { parent::__construct($hostname, $hostUsername, $hostPassword, $database, $email, $password); } }
ReceiveDataConfiguration.php
<?php abstract class ReceiveDataConfiguration { /** @var mixed $connect */ private $connect; /** @var string $hostname */ private $hostname; /** @var string $hostUsername */ private $hostUsername; /** @var string $hostPassword */ private $hostPassword; /** @var string $database */ private $database; /** @var string $email */ private $email; /** @var string $password */ private $password; public function __construct($hostname, $hostUsername, $hostPassword, $database, $email, $password) { $this->setHostname($hostname); $this->setHostUserName($hostUsername); $this->setHostPassword($hostPassword); $this->setDatabase($database); $this->setEmail($email); $this->setPassword($password); $this->tryConnect(); } /** * @param $hostname * @return mixed */ private function setHostname($hostname) { $this->hostname = $hostname; return $this->hostname; } /** * @param $hostUsername * @return string */ private function setHostUserName($hostUsername) { $this->hostUsername = $hostUsername; return $this->hostUsername; } /** * @param $hostPassword * @return mixed */ private function setHostPassword($hostPassword) { $this->hostPassword = $hostPassword; return $this->hostPassword; } /** * @param $database * @return mixed */ private function setDatabase($database) { $this->database = $database; return $this->database; } /** * @param $email * @return mixed */ private function setEmail($email) { $this->email = $email; return $this->email(); } /** * @param $password * @return mixed */ private function setPassword($password) { $this->password = $password; return $this->password; } /** * Try to connect with database using the data informed * @return string */ private function tryConnect() { try{ $this->connect = new \PDO("mysql:host{$this->hostname};dbname={$this->database}", $this->hostUsername, $this->hostPassword); $this->connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); if($this->connect == true): echo 'foi'; endif; }catch(\Exception $e){ return $e->getCode() . ' ' . $e->getMessage(); } } }