ConfigProvider.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4. * This file is part of Hyperf.
  5. *
  6. * @link https://www.hyperf.io
  7. * @document https://hyperf.wiki
  8. * @contact group@hyperf.io
  9. * @license https://github.com/hyperf/hyperf/blob/master/LICENSE
  10. */
  11. namespace Hyperf\DbConnection;
  12. use Hyperf\Database\Commands\Migrations\FreshCommand;
  13. use Hyperf\Database\Commands\Migrations\GenMigrateCommand;
  14. use Hyperf\Database\Commands\Migrations\InstallCommand;
  15. use Hyperf\Database\Commands\Migrations\MigrateCommand;
  16. use Hyperf\Database\Commands\Migrations\RefreshCommand;
  17. use Hyperf\Database\Commands\Migrations\ResetCommand;
  18. use Hyperf\Database\Commands\Migrations\RollbackCommand;
  19. use Hyperf\Database\Commands\Migrations\StatusCommand;
  20. use Hyperf\Database\Commands\ModelCommand;
  21. use Hyperf\Database\Commands\Seeders\GenSeederCommand;
  22. use Hyperf\Database\Commands\Seeders\SeedCommand;
  23. use Hyperf\Database\ConnectionResolverInterface;
  24. use Hyperf\Database\Connectors\ConnectionFactory;
  25. use Hyperf\Database\Connectors\MySqlConnector;
  26. use Hyperf\Database\Migrations\MigrationRepositoryInterface;
  27. use Hyperf\DbConnection\Listener\RegisterConnectionResolverListener;
  28. use Hyperf\DbConnection\Pool\PoolFactory;
  29. class ConfigProvider
  30. {
  31. public function __invoke(): array
  32. {
  33. return [
  34. 'dependencies' => [
  35. PoolFactory::class => PoolFactory::class,
  36. ConnectionFactory::class => ConnectionFactory::class,
  37. ConnectionResolverInterface::class => ConnectionResolver::class,
  38. 'db.connector.mysql' => MySqlConnector::class,
  39. MigrationRepositoryInterface::class => DatabaseMigrationRepositoryFactory::class,
  40. ],
  41. 'commands' => [
  42. ModelCommand::class,
  43. GenMigrateCommand::class,
  44. InstallCommand::class,
  45. MigrateCommand::class,
  46. FreshCommand::class,
  47. RefreshCommand::class,
  48. ResetCommand::class,
  49. RollbackCommand::class,
  50. StatusCommand::class,
  51. GenSeederCommand::class,
  52. SeedCommand::class,
  53. ],
  54. 'listeners' => [
  55. RegisterConnectionResolverListener::class,
  56. ],
  57. 'annotations' => [
  58. 'scan' => [
  59. 'paths' => [
  60. __DIR__,
  61. ],
  62. ],
  63. ],
  64. 'publish' => [
  65. [
  66. 'id' => 'config',
  67. 'description' => 'The config for database.',
  68. 'source' => __DIR__ . '/../publish/databases.php',
  69. 'destination' => BASE_PATH . '/config/autoload/databases.php',
  70. ],
  71. [
  72. 'id' => 'query-listener',
  73. 'description' => 'The listener of database to record log.',
  74. 'source' => __DIR__ . '/../publish/DbQueryExecutedListener.php',
  75. 'destination' => BASE_PATH . '/app/Listener/DbQueryExecutedListener.php',
  76. ],
  77. ],
  78. ];
  79. }
  80. }