PathGenerator.php 828 B

1234567891011121314151617181920212223242526272829303132
  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\Rpc\PathGenerator;
  12. use Hyperf\Rpc\Contract\PathGeneratorInterface;
  13. use Hyperf\Stringable\Str;
  14. use Hyperf\Stringable\StrCache;
  15. class PathGenerator implements PathGeneratorInterface
  16. {
  17. public function generate(string $service, string $method): string
  18. {
  19. $handledNamespace = explode('\\', $service);
  20. $handledNamespace = Str::replaceLast('Service', '', end($handledNamespace));
  21. $path = StrCache::snake($handledNamespace);
  22. if ($path[0] !== '/') {
  23. $path = '/' . $path;
  24. }
  25. return $path . '/' . $method;
  26. }
  27. }