$fileRecord->save();
}
+ /**
+ * Получает базовый URL для api2 в зависимости от текущего домена
+ */
+ private static function getApi2BaseUrl(): string
+ {
+ $currentHost = $_SERVER['HTTP_HOST'] ?? 'localhost';
+
+ // Для продакшена
+ if ($currentHost === 'erp.erp-flowers.ru') {
+ return 'https://api2.erp.erp-flowers.ru';
+ }
+
+ // Для dev сервера
+ if ($currentHost === 'dev.erp-flowers.ru') {
+ return 'https://api2.dev.erp-flowers.ru';
+ }
+
+ // Для dev1 сервера
+ if ($currentHost === 'dev1.erp-flowers.ru') {
+ return 'https://api2.dev1.erp-flowers.ru';
+ }
+
+ // Для локальной разработки (предполагаем localhost:5555 для api2)
+ if (str_contains($currentHost, 'localhost')) {
+ return 'http://localhost:5555';
+ }
+
+ // По умолчанию продакшен
+ return 'https://api2.erp.erp-flowers.ru';
+ }
+
+ /**
+ * Проверяет доступность URL
+ */
+ private static function checkUrlAvailability(string $url): bool
+ {
+ $client = new Client([
+ 'timeout' => 5,
+ 'connect_timeout' => 2,
+ 'verify' => false, // Для тестовых сред
+ ]);
+
+ try {
+ $response = $client->head($url);
+ return $response->getStatusCode() === 200;
+ } catch (\Exception $e) {
+ return false;
+ }
+ }
+
+ /**
+ * Получает корректный URL для изображения с проверкой доступности
+ */
+ private static function getCorrectImageUrl(string $relativePath): string
+ {
+ $currentApi2Url = self::getApi2BaseUrl() . $relativePath;
+ $prodApi2Url = 'https://api2.erp.erp-flowers.ru' . $relativePath;
+
+ // Если текущий URL доступен, используем его
+ if (self::checkUrlAvailability($currentApi2Url)) {
+ return $currentApi2Url;
+ }
+
+ // Если текущий недоступен, пробуем продакшен
+ if (self::checkUrlAvailability($prodApi2Url)) {
+ return $prodApi2Url;
+ }
+
+ // Если ничего не доступно, возвращаем текущий (лучше показать ошибку чем ничего)
+ return $currentApi2Url;
+ }
+
public static function drawFile($file) {
if ($file->file_type == 'image') {
$url = $file->url;
// Корректировка URL для файлов kikfeedbackrequest_file с типом image
if ($file->entity == 'kikfeedbackrequest_file') {
if (str_starts_with($url, '/uploads/')) {
- $url = 'https://api2.erp.erp-flowers.ru' . $url;
+ $url = self::getCorrectImageUrl($url);
} else {
- $url = str_replace('https://erp.erp-flowers.ru', 'https://api2.erp.erp-flowers.ru', $url);
+ $url = str_replace('https://erp.erp-flowers.ru', self::getApi2BaseUrl(), $url);
}
}
ImageHelper::drawImage($url);