DatabaseHelper.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace ModulesGarden\ProxmoxAddon\Core\Helper;
  3. use ModulesGarden\ProxmoxAddon\Core\FileReader\Reader;
  4. use ModulesGarden\ProxmoxAddon\Core\ServiceLocator;
  5. use Illuminate\Database\Capsule\Manager;
  6. /**
  7. * Autometes some of database queries
  8. *
  9. * @author
  10. */
  11. class DatabaseHelper
  12. {
  13. /**
  14. * Helper to perform raw queries for module
  15. *
  16. * @param string $file
  17. * @return array
  18. */
  19. public function performQueryFromFile($file = '')
  20. {
  21. return $this->checkIsAllSuccess(array_map([$this, "execute"], $this->getQueries($file)));
  22. }
  23. protected function checkIsAllSuccess(array $array = [])
  24. {
  25. return in_array(false, $array, true);
  26. }
  27. protected function execute(&$query)
  28. {
  29. try
  30. {
  31. $pdo = Manager::connection()->getPdo();
  32. if (empty($query) === false)
  33. {
  34. $statement = $pdo->prepare($query);
  35. $statement->execute();
  36. }
  37. $query = true;
  38. }
  39. catch (\PDOException $ex)
  40. {
  41. ServiceLocator::call('errorManager')->addError(self::class, $ex->getMessage(), ['query' => $query]);
  42. $query = false;
  43. }
  44. return $query;
  45. }
  46. protected function getQueries($file)
  47. {
  48. return explode(';', Reader::read($file)->get());
  49. }
  50. }