con
This commit is contained in:
		
							parent
							
								
									231710e996
								
							
						
					
					
						commit
						81855c900e
					
				
							
								
								
									
										28
									
								
								index.php
								
								
								
								
							
							
						
						
									
										28
									
								
								index.php
								
								
								
								
							|  | @ -8,25 +8,35 @@ interface ISqlBase { | ||||||
|     //public function Update(): string;
 |     //public function Update(): string;
 | ||||||
|     //public function Delete(): string;
 |     //public function Delete(): string;
 | ||||||
| } | } | ||||||
| 
 | class ConnectionManager { | ||||||
|  |     private static $connection; | ||||||
|  |     public static function connect(string $connectionString) { | ||||||
|  |         self::$connection = new PDO($connectionString); | ||||||
|  |     } | ||||||
|  |     public static function Query(string $query, $params, $output = 'stdObject') { | ||||||
|  |         $stmt = self::$connection->prepare($query); | ||||||
|  |         $stmt->execute($params); | ||||||
|  |         return $stmt->fetchObject($output); | ||||||
|  |     } | ||||||
|  | } | ||||||
| abstract class BaseModel { | abstract class BaseModel { | ||||||
|     protected $sql; |     protected static $sql; | ||||||
|      |      | ||||||
|     public function __construct(ISqlBase $sql) { |     public function __construct(ISqlBase $sql) { | ||||||
|         $this->sql = $sql; |         self::$sql = $sql; | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     public static function Get(int $id) { |     public static function Get(int $id) { | ||||||
|         return get_called_class(); |         return ConnectionManager::Query( | ||||||
|          $stmt = $pdo->prepare('SELECT id, name FROM users WHERE id=?'); |             self::$sql->Get(), | ||||||
|          $stmt->execute([$id]); |             [], | ||||||
|          return $stmt->fetchObject(__CLASS__); |             get_called_class()); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| class JobSql implements ISqlBase { | class JobSql implements ISqlBase { | ||||||
|     public function Get(): string { |     public function Get(): string { | ||||||
|         return ""; |         return "Select * from jobs where id = :id"; | ||||||
|     } |     } | ||||||
|      |      | ||||||
| } | } | ||||||
|  | @ -36,6 +46,8 @@ class Job extends BaseModel { | ||||||
|         parent::__construct( new JobSql() ); |         parent::__construct( new JobSql() ); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | $dns = 'pgsql:host=localhost;port=5432;dbname=dynamic_dev;user=test;password=pas123'; | ||||||
|  | ConnectionManager::Connect($dns); | ||||||
| echo " | echo " | ||||||
| 
 | 
 | ||||||
| ";
 | ";
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue