BaseRepository.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. ApplicationSettings::RegisterDefaultSetting("database", "host", "localhost");
  3. ApplicationSettings::RegisterDefaultSetting("database", "database", "php-mvc");
  4. ApplicationSettings::RegisterDefaultSetting("database", "username", "root");
  5. ApplicationSettings::RegisterDefaultSetting("database", "password", "");
  6. class BaseRepository {
  7. /**
  8. * @var DependencyInjector
  9. */
  10. private $DependencyInjector;
  11. protected static $PDO=null;
  12. protected static function SetupPDO(){
  13. if (self::$PDO!=null)
  14. return;
  15. $host=ApplicationSettings::GetSetting("database", "host");
  16. $db=ApplicationSettings::GetSetting("database", "database");
  17. $username=ApplicationSettings::GetSetting("database", "username");
  18. $password=ApplicationSettings::GetSetting("database", "password");
  19. self::$PDO=new PDO("mysql:host=$host;dbname=$db",$username,$password);
  20. self::$PDO->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
  21. }
  22. public static function GetPDO(){
  23. self::SetupPDO();
  24. return self::$PDO;
  25. }
  26. public function __construct() {
  27. self::SetupPDO();
  28. }
  29. protected function DoBasicSelectQuery($table, $field, array $keyValuePair=null){
  30. $sql="SELECT `$field` FROM `$table`";
  31. $execData=array();
  32. if ($keyValuePair!=null && count($keyValuePair)>0){
  33. $sql.=" WHERE ";
  34. foreach ($keyValuePair as $key=>$value){
  35. $sql.="$key=:$key";
  36. $execData[":$key"]=$value;
  37. }
  38. }
  39. self::SetupPDO();
  40. $prep=self::$PDO->prepare($sql);
  41. $prep->execute($execData);
  42. return $prep->fetchAll(PDO::FETCH_COLUMN);
  43. }
  44. protected function ResolveDependency($dependency) {
  45. return $this->DependencyInjector->Resolve($dependency);
  46. }
  47. }