OCRFactory.php 786 B

1234567891011121314151617181920212223242526
  1. <?php
  2. namespace App\Services\OCR;
  3. use App\Services\OCR\Drivers\AliyunOCRDriver;
  4. use App\Services\OCR\Drivers\ExternalOCRDriver;
  5. use InvalidArgumentException;
  6. class OCRFactory
  7. {
  8. public static function create(string $driver = null): OCRInterface
  9. {
  10. $driver = $driver ?? config('ocr.driver', 'aliyun');
  11. switch ($driver) {
  12. case 'aliyun':
  13. return new AliyunOCRDriver(config('ocr.drivers.aliyun'));
  14. case 'external':
  15. return new ExternalOCRDriver(config('ocr.drivers.external'));
  16. // case 'baidu':
  17. // return new BaiduOCRDriver(config('ocr.drivers.baidu'));
  18. default:
  19. throw new InvalidArgumentException("Unsupported OCR driver: {$driver}");
  20. }
  21. }
  22. }