DatabaseHelper.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxVps\Core\Helper;
  3. use ModulesGarden\Servers\ProxmoxVps\Core\FileReader\Reader;
  4. use ModulesGarden\Servers\ProxmoxVps\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 array_filter(explode(';', Reader::read($file)->get()), function ($element) {
  49. $tElement = trim($element);
  50. if ($element === '' || $tElement === '')
  51. {
  52. return false;
  53. }
  54. return true;
  55. });
  56. }
  57. }