|
- <?php
-
- namespace common\helpers;
-
- class Image
- {
- const DIR_UPLOADS = 'uploads';
-
- const THUMBNAIL_SMALL = 'small';
- const THUMBNAIL_MEDIUM = 'medium';
- const THUMBNAIL_BIG = 'big';
-
- public static function getThumbnailSmall(string $filenameOriginal, bool $absoluteUrl = false)
- {
- return self::getThumbnail($filenameOriginal, self::THUMBNAIL_SMALL, $absoluteUrl);
- }
-
- public static function getThumbnailMedium(string $filenameOriginal, bool $absoluteUrl = false)
- {
- return self::getThumbnail($filenameOriginal, self::THUMBNAIL_MEDIUM, $absoluteUrl);
- }
-
- public static function getThumbnailBig(string $filenameOriginal, bool $absoluteUrl = false)
- {
- return self::getThumbnail($filenameOriginal, self::THUMBNAIL_BIG, $absoluteUrl);
- }
-
- public static function getThumbnail(string $filenameOriginal, string $thumbnail = self::THUMBNAIL_MEDIUM, bool $absoluteUrl = false)
- {
- $basePath = self::getBasePath($absoluteUrl);
- $thumbnailFilename = self::getThumbnailFilename($filenameOriginal, $thumbnail);
- $thumbnailPath = $basePath . $thumbnailFilename;
- $originalPath = $basePath . $filenameOriginal;
-
- return self::isThumbnailExist($thumbnailFilename) ? $thumbnailPath : $originalPath;
- }
-
- public static function getBasePath(bool $absoluteUrl = false): string
- {
- $absoluteUrlPrepend = '';
- if($absoluteUrl) {
- $absoluteUrlPrepend = \Yii::$app->urlManagerProducer->getHostInfo();
- }
-
- return $absoluteUrlPrepend . \Yii::$app->urlManagerProducer->baseUrl.'/'.self::DIR_UPLOADS.'/';
- }
-
- public static function getThumbnailFilename(string $filename, string $thumbnail = self::THUMBNAIL_MEDIUM)
- {
- $filenameArray = explode('.', $filename);
- return $filenameArray[0].'-'.$thumbnail.'.'.$filenameArray[1];
- }
-
- public static function isThumbnailExist(string $thumbnailFilename): bool
- {
- return file_exists(\Yii::getAlias('@producer').'/web/'.self::DIR_UPLOADS.'/'.$thumbnailFilename);
- }
- }
|