Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

Auxilio com abstração de classe

$
0
0

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();
}
}
}

Viewing all articles
Browse latest Browse all 14190

Trending Articles