Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Class DatabaseConfig
- */
- class DatabaseConfig
- {
- // to powinno być ładowane z jakiegoś yamla czy czegoś
- /**
- * @var array
- */
- private $config = [
- 'db_server' => '127.0.0.1',
- 'db_name' => 'schema',
- 'db_user' => 'user1',
- 'db_password' => 'password123',
- ];
- /**
- * @var string
- */
- public $dbServer;
- /**
- * @var string
- */
- public $dbName;
- /**
- * @var string
- */
- public $dbUser;
- /**
- * @var string
- */
- public $dbPassword;
- /**
- * DatabaseConfig constructor.
- */
- public function __construct()
- {
- $this->dbName = $this->config['db_name'];
- $this->dbServer = $this->config['db_server'];
- $this->dbUser = $this->config['db_user'];
- $this->dbPassword = $this->config['db_password'];
- }
- }
- /**
- * Class DatabaseManager
- */
- class DatabaseManager
- {
- /**
- * @var DatabaseConfig
- */
- protected $dbConfig;
- /**
- * @var PDO
- */
- protected $db;
- /**
- * DatabaseManager constructor.
- *
- * @param DatabaseConfig $config
- */
- public function __construct(DatabaseConfig $config)
- {
- $this->dbConfig = $config;
- $this->db = $this->preparePdo();
- }
- /**
- * @param string $sql
- *
- * @return array
- */
- public function getResults($sql)
- {
- $sql = $this->db->query($sql);
- $result = $sql->fetchAll(PDO::FETCH_ASSOC);
- return $result;
- }
- /**
- * @throws
- * @return PDO
- */
- private function preparePdo()
- {
- try {
- return new PDO(
- 'mysql:host='.$this->dbConfig->dbServer.':dbname='.$this->dbConfig->dbName,
- $this->dbConfig->dbUser,
- $this->dbConfig->dbPassword,
- [
- PDO::ATTR_EMULATE_PREPARES => false,
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
- ]
- );
- } catch (PDOException $e) {
- throw $e; //todo error handling
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement