2017 © Pedro Peláez
 

yii2-extension yii2download

Actions for dropping files and pictures

image

studiosite/yii2download

Actions for dropping files and pictures

  • Friday, June 24, 2016
  • by fromtuba
  • Repository
  • 0 Watchers
  • 0 Stars
  • 12 Installations
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 9 Versions
  • 0 % Grown

The README.md

yii2download

Компонент формирования ссылок для скачивания (отдачи) изображений и файлов с наложением фильтров, (*1)

Установка

Предпочтительный способ установить это расширение через композитор. composer., (*2)

Запустите, (*3)

$ php composer.phar require studiosite/yii2download "*"

или добавить, (*4)

"studiosite/yii2download": "*"

в секции require composer.json файла., (*5)

Использование

Yii2 Download

В конфигурации приложения необходимо указать карту контроллера на studiosite\yii2download\controllers\DownloadController, либо на унаследованный, (*6)

...
...
'controllerMap' => [
    'download' => 'studiosite\yii2download\controllers\DownloadController',
    ...
],
...
...

и сконфигурировать компонент(-ы) формирования ссылок на изображение (studiosite\yii2download\components\ImageDownload) и на файл (studiosite\yii2download\components\FileDownload), (*7)

...
'components' => [
    ...
    'image' => [
        // Класс компонента (Обязательно для конфигурирования)
        'class' => 'studiosite\yii2download\components\ImageDownload',

        // Список директорий из которых допустима отдача файлов [имя роута] => роут (Обязательно для конфигурирования)
        // В динамических ссылка будет заменяться абсолютной ссылки на файл на роут (На пример путь к файлу /var/www/project/common/data/image/user/avatar.png будет изменен на user/avatar.png)
        'allowPath' => [
            'user' => '@common/data/images/user',
            'images' => '@common/data/images',
        ],

        // Роут отдачи, сконфигурированный выше в controllerMap. Для изображений используется экшен image (Обязательно для конфигурирования) (По умолчанию '/download/image')
        'route' => '/download/image',

        // Конфигурирование пользовательских фильтров. Фильтр по умолчанию (studiosite\yii2download\components\ImageDownload::defaultFilters()) будут склеины с пользовательскими (По умолчанию [])
        'filters' => [
            //'watermark' => '\\common\\componets\Watermark',
        ],

        // Путь куда публиковать файлы для отдачи (По умолчанию '@app/web/assets')
        'assetsFolder' => '@app/web/assets/images',

        // Базовый путь для отдачи ссылки (По умолчанию '@web/assets')
        'baseAssetsFolder' => '@web/assets/images',

        // Имя класса проверки прав отдачи файла.
        // Используется при необходимости защищенной отдачи конкретным пользователям
        // Класс проверки долже соответствовать интерфейсу studiosite\yii2download\interfaces\AccessManagerInterface
        // (По умолчанию не указан, проверки не будет)
        'accessManager' => 'studiosite\yii2download\components\AccessManager',

        // Имя этого компонента для дальнейшей обработки в контроллере. Yii::$app->image
        // (По умолчанию 'image')
        'componentNameForController' => 'image',

        // Запретить прегенерацию темп файла до контроллера для незащищенной отдачи (По умолчанию false).
        // При указании true может уменьшить нагрузку при отрисовки страниц с большим списком изображений.
        // Ссылка получится динамической, может потребоваться для передачи через апи, что бы запрашивавший сервер не потерял ссылку при очестве assets
        'prohibitPrepublish' => false,

        // Время приватного кеширования в секундах для динамических ссылок (По умолчанию 100 минут (6000))
        'privateCacheTime' => 6000,
    ],
    'file' => [

        // Класс компонента (Обязательно для конфигурирования)
        'class' => 'studiosite\yii2download\components\FileDownload',

        // Список директорий из которых допустима отдача файлов [имя роута] => роут (Обязательно для конфигурирования)
        'allowPath' => [
            'images' => '@common/data/images/content',
        ],

        // Роут отдачи, сконфигурированный выше в controllerMap. Для изображений используется экшен image (Обязательно для конфигурирования) (По умолчанию '/download/file')
        'route' => '/download/file',

        // Имя этого компонента для дальнейшей обработки в контроллере. Yii::$app->file
        // (По умолчанию 'file')
        'componentNameForController' => 'file',

        // Все остальные параметры по аналогии с компонентом image
        ...
    ]
    ...
...

Компоненты используются по шаблону Yii::$app->ИМЯ_КОМПОНЕНТА->path(АБСОЛЮТНЫЙ_ПУТЬ_ДО_ИЗОБРАЖЕНИЯ)->ИМЯ_ФИЛЬТРА(ПАРАМЕТРЫ_ФИЛЬТРА)->link();, (*8)

Для компонента изображений, функция path принимает 2 параметра: - fileName - абсолютный путь к оригиналу изображения - notFoundFile - абсолютный путь к изображению в случае если не найден оригинальный файл, (*9)

Пример использования:, (*10)

...

// Изменит размер исходного изображение до 1000 на 1000 px, качество 100 качество 90 % и конвертирует в формат image/jpeg
echo
// результат с указаной выше конфигурацией будет (Доступ менеджер указан, ссылка динамическая) http://example.com/download/image?name=user%2Fno-image.png&component=image&thumbnail%5Bsize%5D=1000&thumbnail%5Bquality%5D=90&convert%5Bextention%5D=jpg
 Yii::$app->image->path('@common/data/images/user/no-image.png')->thumbnail([
    'size' => 1000,
    'quality' => 90,
])->convert([
    'extention' => 'jpg'
])->link();

// Конвертирует в формат image/jpeg
// результат с указаной выше конфигурацией будет (Доступ менеджер указан, ссылка динамическая) http://example.com/download/image?name=user%2Fno-image.png&component=image&convert%5Bextention%5D=JPEG
echo  Yii::$app->image->path('@common/data/images/user/no-image.png')->convert([
    'extention' => 'JPEG'
])->link();

// Сожмет файл (используется компонент https://github.com/wapmorgan/UnifiedArchive). На момент написания доступен долько дефолтный алгорим сжатия (формат zip)
// результат с указаной выше конфигурацией будет (Доступ менеджер не указан) http://example.com/assets/images/no-image-14bf6.zip Ссылка из асетсов
echo  Yii::$app->file->path('@common/data/images/user/no-image.png')->compress()->link();

// Просто отдача файла
// результат с указаной выше конфигурацией будет (Доступ менеджер не указан) http:///example.com/assets/images/no-image-8808b.png
echo  Yii::$app->file->path('@common/data/images/user/no-image.png')->link();

// Отдача файла с возможным несуществованием оригинала
// результат с указаной выше конфигурацией будет (Доступ менеджер не указан) http:///example.com/assets/images/no-image-8808b.png
echo  Yii::$app->file->path('@common/data/images/user/file.png', '@common/data/images/user/no-image.png')->link();
...

В компоненте ImageDownload, (*11)

Фильтры

В комплект пакета входит 3 фильтра изображений - convert - thumbnail - watermark, (*12)

и 1 фильтр файлов - compress, (*13)

Фильтры изображений

convert - Конвертирование изображения в другой формат

Применяется с 1 параметром extention, по умолчанию - null. Модель изображения является yii\imagine\Image объект, п/у возможные форматы зависят от используемого движка, (*14)

Фильтр может использоваться с другими фильтрами изображений, (*15)

thumbnail - Фильтр сжатия изображения по размеру и качеству

Принимает параметры: - size - размер стороны квадрата size=width=height. Опция приоритетнее width и height - width - ширина изображения. По умолчанию остается прежней - height - высота изображения. По умолчанию остается прежней - quality - качество изображение (100 - изображение не сжимается). По умолчанию 100%, (*16)

Все параметры не обязательны, (*17)

Фильтр может использоваться с другими фильтрами изображений, (*18)

watermark - Наложения водяного знака на изображение

Принимает параметры: - image - абсолютный путь до изображения водяного знака - right - положение от правого края (не обязательный параметр) - left - положение от левого края (не обязательный параметр) - top - положение от верха (не обязательный параметр) - bottom - положение от низа (не обязательный параметр) - resize - изменить размер знака (1 не менять, 1.1 увелечить на 10%) (По умолчанию 1), (*19)

Фильтр может использоваться с другими фильтрами изображений, (*20)

Фильтры файлов

compress - Сжатия файла

Принимает 1 параметр format, по умолчанию zip. Подробнее о поддерживаемых форматах wapmorgan/UnifiedArchive, (*21)

Фильтр НЕ может использоваться с другими фильтрами изображений, окончания фильтрации является callback сжатия, (*22)

Тестирование

Перейти в папку с пакетом и установить зависимости, (*23)

cd studiosite/yii2download
composer install

Далее для тестирования в том же месте, (*24)

phpunit

The Versions

24/06 2016

dev-master

9999999-dev https://bitbucket.org/studiosite/yii2download.git

Actions for dropping files and pictures

  Sources   Download

BSD-3-Clause

The Requires

 

file yii2 image download actions

16/06 2016

2.0.6

2.0.6.0 https://bitbucket.org/studiosite/yii2download.git

Actions for dropping files and pictures

  Sources   Download

BSD-3-Clause

The Requires

 

file yii2 image download actions

02/06 2016

2.0.5

2.0.5.0 https://bitbucket.org/studiosite/yii2download.git

Actions for dropping files and pictures

  Sources   Download

BSD-3-Clause

The Requires

 

file yii2 image download actions

21/04 2016

2.0.4

2.0.4.0 https://bitbucket.org/studiosite/yii2download.git

Actions for dropping files and pictures

  Sources   Download

BSD-3-Clause

The Requires

 

file yii2 image download actions

20/04 2016

2.0.3

2.0.3.0 https://bitbucket.org/studiosite/yii2download.git

Actions for dropping files and pictures

  Sources   Download

BSD-3-Clause

The Requires

 

file yii2 image download actions

20/04 2016

2.0.2

2.0.2.0 https://bitbucket.org/studiosite/yii2download.git

Actions for dropping files and pictures

  Sources   Download

BSD-3-Clause

The Requires

 

file yii2 image download actions

10/04 2016

dev-refactoring

dev-refactoring https://bitbucket.org/studiosite/yii2download.git

Actions for dropping files and pictures

  Sources   Download

BSD-3-Clause

The Requires

 

file yii2 image download actions

26/02 2016

2.0.1

2.0.1.0 https://bitbucket.org/studiosite/yii2download.git

Actions for dropping files and pictures

  Sources   Download

BSD-3-Clause

The Requires

 

file yii2 image download actions

24/02 2016

2.0.0

2.0.0.0 https://bitbucket.org/studiosite/yii2download.git

Actions for dropping files and pictures

  Sources   Download

BSD-3-Clause

The Requires

 

file yii2 image download actions