Download the PHP package oleg-chulakov-studio/yii2-filestorage without Composer

On this page you can find all versions of the php package oleg-chulakov-studio/yii2-filestorage. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package yii2-filestorage

FileStorage - загрузка и хранение файлов

Компонент позволяющий загружать и хранить файлы, генерировать thumbnails изображений.

Возможности компонента:

На данной странице описано базовое использование и базовые настройки данного компонента. Остальное можно прочитать в следующих разделах:

Установка

Чтобы установить компонент, нужно в composer.json добавить следующие строки:

Или набрать команду:

Настройка

1) Выполнить миграции

Чтобы выполнить миграции нужно вызвать следующую комманду из корня приложения:

При выполнении миграции будет создана таблица file со следующим содержимым:

, где

2) Подключение компонента хранилища

В config/main.php нужно настроить компоненты:

3) Подключение поведения модели

Система сохранения работает с помощью поведений, они ответственны за доставку файла модели. Данные поведения прикрепляются к моделям, в дальнейшем обрабатывают файл и прикрепляют файл в указанный атрибут модели.

Имеется два загрузочных поведения:

Подключение поведения:

4) Подключение репозиториев

К каждому поведению нужно настроить способ получения файла, а именно - настроить репозиторий.

Доступные репозитории:

5) Настройка репозиториев

Сам репозиторий основан на шаблоне Observer, то есть он имеет слушателя и наблюдателя:

В конечном итоге, весь компонент работает на событийной модели обработки и сохранения файлов.

Реализуется такая цепочка:

получаем файл -> срабатывает событие -> производится обработка файла -> сохранение файла.

6) Настройка слушателей

Слушатели подписываются на события наблюдателя, после чего каждый слушатель получает информацию о файле в момент сохранения файла. Каждый слушатель может производить над файлом свои действия, в результате чего производится видоизменение файла и различные побочные дейтсвия.

Все слушатели должны реализовывать ListenerInterface, только так они могут подписаться на наблюдателя.

ImageManager

ImageManager работает с только изображениями, производит resize, накладывает watermark, меняет расширение и т.д. Он имеет следующие настройки:

ThumbManager

Все параметры по настройки ThumbManager аналогичны ImageManager. Каждая настройка применяется над файлом, после сохранения все данные настройки будут отображены на конечном сохраненном файле.

Все сохраненные thumbnail сохраняются в отдельную папку под названием thumbs. Базовой путь до файлов подвержен структуре формирования пути:

'{relay}/{group}/{basename}/{type}_{width}x{height}.{ext}'

, где:

Чтобы повлиять на алгоритм генерации пути, можно прокинуть в imageParamsClass корректно настроенную параметрическую модель или свою реализацию параметрической модели.

Настройка слушателей

7) Пример реализации контроллера с загрузкой файла

В примере реализации контроллера с загрузкой файла можно увидеть метод использования функционала поведения. В результате чего будет получен и сохранен загружаемый файл.

8) Валидация обновляемого файла

Когда используется общая форма для добавления и редактирования данных для обхода валидации обязательности загрузки файла при редактировании, можно воспользоваться встроенным файловым валидатором, который воспринимает наличие наличие ранее загруженного файла и игнорирует обязательность ранее загруженного файла.

Подключение валидатора:

Изначально strict, строгая проверка по типу объектов (UploadedInterface - у загружаемого и BaseFile - у ранее загруженного), отключена, но ее можно легко включить добавив в правила подключенного валидатора 'strict' => true.

9) Миграции с загрузкой файлов

При разработке проектов порой приходится создавать новые миграции с таблицами к которым должен быть прикреплен файл. Помимо того, что нужно создать саму таблицу для удобства загружают сразу исходные изображения, то есть нужно осуществить загрузку файла прямиком через миграцию. Для решения данной задачи нами был разработан класс Migration. Для использования нужно от него отнаследоваться.

Непосредственно в миграции появляется дополнительная функция $this->upload();, данная функция позволяет указать исходный путь к файлу и передать параметры вроде группы, идентификатора объекта и типа объекта.

10) Расширение таблицы файла

Если в таблицу к файлу необходимо добавить дополнительные поля, такие как комментарий к каждому файлу, можно смело расширять исходную таблицу и внедрять в нее необходимые поля. Но в силу того, что компонент по умолчанию работает с базовым файлом и знает о модели только те данные, что он может получить из самого файла, то для реализации сохранения расширенных полей можно воспользоваться событием, которое сработает до или после сохранения модели в базу данных и, если это необходимо, указать собственный класс модели файла.

Все остальные примеры можно посмотреть в папке с примерами.

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

Реализовано базовое unit тестирование.

Чтобы запустить тесты, нужно выполнить данную команду в корне компонента filestorage:

Реализованы следующие тесты:

Также, во время тестирования происходит работа с тестовой базой данных, она находится в /data/database/test.db.


All versions of yii2-filestorage with dependencies

PHP Build Version
Package Version
Requires php Version >=5.6.0
yiisoft/yii2 Version ~2.0.13
intervention/image Version ^2.4
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package oleg-chulakov-studio/yii2-filestorage contains the following files

Loading the files please wait ....