39 lines
		
	
	
		
			806 B
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			806 B
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| interface ISqlBase {
 | |
|     public function Get(): string;
 | |
|     //public function Insert(): string;
 | |
|     //public function Update(): string;
 | |
|     //public function Delete(): string;
 | |
| }
 | |
| 
 | |
| abstract class BaseModel {
 | |
|     protected $sql;
 | |
|     
 | |
|     public function __construct(ISqlBase $sql) {
 | |
|         $this->sql = $sql;
 | |
|     }
 | |
|     
 | |
|     public static function Get(int $id) {
 | |
|         return get_called_class();
 | |
|          $stmt = $pdo->prepare('SELECT id, name FROM users WHERE id=?');
 | |
|          $stmt->execute([$id]);
 | |
|          return $stmt->fetchObject(__CLASS__);
 | |
|     }
 | |
| }
 | |
| 
 | |
| class JobSql implements ISqlBase {
 | |
|     public function Get(): string {
 | |
|         return "";
 | |
|     }
 | |
|     
 | |
| }
 | |
| 
 | |
| class Job extends BaseModel {
 | |
|     public function __construct() {
 | |
|         parent::__construct( new JobSql() );
 | |
|     }
 | |
| }
 | |
| 
 | |
| echo Job::Get(10);
 |