Factory.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. class FreshRSS_Factory {
  3. /**
  4. * @throws Minz_ConfigurationNamespaceException|Minz_PDOConnectionException
  5. */
  6. public static function createUserDao(?string $username = null): FreshRSS_UserDAO {
  7. return new FreshRSS_UserDAO($username);
  8. }
  9. /**
  10. * @throws Minz_ConfigurationNamespaceException|Minz_PDOConnectionException
  11. */
  12. public static function createCategoryDao(?string $username = null): FreshRSS_CategoryDAO {
  13. switch (FreshRSS_Context::$system_conf->db['type'] ?? '') {
  14. case 'sqlite':
  15. return new FreshRSS_CategoryDAOSQLite($username);
  16. default:
  17. return new FreshRSS_CategoryDAO($username);
  18. }
  19. }
  20. /**
  21. * @throws Minz_ConfigurationNamespaceException|Minz_PDOConnectionException
  22. */
  23. public static function createFeedDao(?string $username = null): FreshRSS_FeedDAO {
  24. switch (FreshRSS_Context::$system_conf->db['type'] ?? '') {
  25. case 'sqlite':
  26. return new FreshRSS_FeedDAOSQLite($username);
  27. default:
  28. return new FreshRSS_FeedDAO($username);
  29. }
  30. }
  31. /**
  32. * @throws Minz_ConfigurationNamespaceException|Minz_PDOConnectionException
  33. */
  34. public static function createEntryDao(?string $username = null): FreshRSS_EntryDAO {
  35. switch (FreshRSS_Context::$system_conf->db['type'] ?? '') {
  36. case 'sqlite':
  37. return new FreshRSS_EntryDAOSQLite($username);
  38. case 'pgsql':
  39. return new FreshRSS_EntryDAOPGSQL($username);
  40. default:
  41. return new FreshRSS_EntryDAO($username);
  42. }
  43. }
  44. /**
  45. * @throws Minz_ConfigurationNamespaceException|Minz_PDOConnectionException
  46. */
  47. public static function createTagDao(?string $username = null): FreshRSS_TagDAO {
  48. switch (FreshRSS_Context::$system_conf->db['type'] ?? '') {
  49. case 'sqlite':
  50. return new FreshRSS_TagDAOSQLite($username);
  51. case 'pgsql':
  52. return new FreshRSS_TagDAOPGSQL($username);
  53. default:
  54. return new FreshRSS_TagDAO($username);
  55. }
  56. }
  57. /**
  58. * @throws Minz_ConfigurationNamespaceException|Minz_PDOConnectionException
  59. */
  60. public static function createStatsDAO(?string $username = null): FreshRSS_StatsDAO {
  61. switch (FreshRSS_Context::$system_conf->db['type'] ?? '') {
  62. case 'sqlite':
  63. return new FreshRSS_StatsDAOSQLite($username);
  64. case 'pgsql':
  65. return new FreshRSS_StatsDAOPGSQL($username);
  66. default:
  67. return new FreshRSS_StatsDAO($username);
  68. }
  69. }
  70. /**
  71. * @throws Minz_ConfigurationNamespaceException|Minz_PDOConnectionException
  72. */
  73. public static function createDatabaseDAO(?string $username = null): FreshRSS_DatabaseDAO {
  74. switch (FreshRSS_Context::$system_conf->db['type'] ?? '') {
  75. case 'sqlite':
  76. return new FreshRSS_DatabaseDAOSQLite($username);
  77. case 'pgsql':
  78. return new FreshRSS_DatabaseDAOPGSQL($username);
  79. default:
  80. return new FreshRSS_DatabaseDAO($username);
  81. }
  82. }
  83. }