ConfigProvider.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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\ConnectionResolverInterface;
  13. use Hyperf\Database\Connectors\ConnectionFactory;
  14. use Hyperf\Database\Connectors\MySqlConnector;
  15. use Hyperf\Database\Migrations\MigrationRepositoryInterface;
  16. use Hyperf\DbConnection\Aspect\TransactionAspect;
  17. use Hyperf\DbConnection\Listener\RegisterConnectionResolverListener;
  18. use Hyperf\DbConnection\Pool\PoolFactory;
  19. class ConfigProvider
  20. {
  21. public function __invoke(): array
  22. {
  23. return [
  24. 'dependencies' => [
  25. PoolFactory::class => PoolFactory::class,
  26. ConnectionFactory::class => ConnectionFactory::class,
  27. ConnectionResolverInterface::class => ConnectionResolver::class,
  28. 'db.connector.mysql' => MySqlConnector::class,
  29. MigrationRepositoryInterface::class => DatabaseMigrationRepositoryFactory::class,
  30. ],
  31. 'listeners' => [
  32. RegisterConnectionResolverListener::class,
  33. ],
  34. 'aspects' => [
  35. TransactionAspect::class,
  36. ],
  37. 'publish' => [
  38. [
  39. 'id' => 'config',
  40. 'description' => 'The config for database.',
  41. 'source' => __DIR__ . '/../publish/databases.php',
  42. 'destination' => BASE_PATH . '/config/autoload/databases.php',
  43. ],
  44. [
  45. 'id' => 'query-listener',
  46. 'description' => 'The listener of database to record log.',
  47. 'source' => __DIR__ . '/../publish/DbQueryExecutedListener.php',
  48. 'destination' => BASE_PATH . '/app/Listener/DbQueryExecutedListener.php',
  49. ],
  50. ],
  51. ];
  52. }
  53. }