2017 © Pedro PelΓ‘ez
 

yii2-extension yii2-storage

image

snewer/yii2-storage

  • Monday, July 2, 2018
  • by Snewer
  • Repository
  • 1 Watchers
  • 0 Stars
  • 33 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 15 Versions
  • 43 % Grown

The README.md

Установка

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ распространяСтся ΠΊΠ°ΠΊ composer ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈ устанавливаСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, (*1)

php composer.phar require snewer/yii2-storage

ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, (*2)

"snewer/yii2-storage": "*"

Π² composer.json Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°., (*3)

Настройка

Π—Π°Π΄Π°Ρ‡Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° β€” прСдоставлСниС интСрфСйса для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ ΠΈ ΠΈΡ… использованиС., (*4)

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ свойство buckets, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ массив ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰., (*5)

Π’Π°ΠΆΠ½ΠΎ! ΠšΠ»ΡŽΡ‡Π°ΠΌΠΈ массива ΡΠ²Π»ΡΡŽΡ‚ΡΡ названия Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π² дальнСйшСм получаСтся экзСмпляр Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°., (*6)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:, (*7)

[
    // ...
    'components' => [
        //...
        'storage' => [
            'class' => 'snewer\storage\StorageManager',
            'buckets' => []
        ],
        //...
    ],
    // ...
]

\ Под Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ понимаСтся рСализация интСрфСйса абстрактного класса snewer\storage\AbstractBucket ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ:, (*8)

  • Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»
  • ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»Π°
  • ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»
  • ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ web ссылку Π½Π° Ρ„Π°ΠΉΠ»

ΠΈΠ· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ систСмы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ) ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ сСрвиса (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Amazon AWS)., (*9)

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ абстрактного класса, (*10)

snewer\storage\AbstractBucket

\ "Из ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ" доступСн Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для локальной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, (*11)

snewer\storage\drivers\FileSystemDriver

ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ свойства:, (*12)

Бвойство Π’ΠΈΠΏ ΠžΠ±ΡΡ‚Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ОписаниС
basePath string Π”Π° НСт Папка Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Ρ„Π°ΠΉΠ»Ρ‹.
baseUrl stringΒ |Β array НСт НСт Url Π΄ΠΎ ΠΏΠ°ΠΏΠΊΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ. МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ массив ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡƒΡ‚Π΅ΠΉ. Π’ΠΎΠ³Π΄Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ ΠΈ ΠΎΠ΄Π½ΠΎΠ·Π°Ρ‡Π½ΠΎ Π²Ρ‹Π±Ρ€Π°Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡƒΡ‚Π΅ΠΉ. *
depth int НСт 3 ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΎΠΊ, создаваСмоС Π² Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

* Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π»ΠΈΠΌΠΈΡ‚ Π½Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ сСрвСру. Для прСодолСния Π»ΠΈΠΌΠΈΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄ΠΎΠΌΠ΅Π½Ρ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³., (*13)

\ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ настройки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° с использованиСм Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰:, (*14)

[
    // ...
    'components' => [
        //...
        'storage' => [
            'class' => 'snewer\storage\StorageManager',
            'buckets' => [
                'images' => [
                    'class' => 'snewer\storage\drivers\FileSystemDriver',
                    'basePath' => '@frontend/web/uploads/images/',
                    'baseUrl' => '@web/uploads/images/',
                    'depth' => 4
                ],
                'documents' => [
                    'class' => 'snewer\storage\drivers\FileSystemDriver',
                    'basePath' => '@frontend/web/uploads/documents/',
                    'baseUrl' => '@web/uploads/documents/',
                    'depth' => 4
                ],
                // ...
            ]
        ],
        //...
    ],
    // ...
]

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

ПослС настройки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ρ‚Π°ΠΊ ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ нСпосрСдствСнно ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°., (*15)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ изобраТСния ΠΈ получСния URL ссылки Π½Π° Π½Π΅Π³ΠΎ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ изобраТСния вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° app\models\Image:, (*16)

public static function upload($imageBinary)
{
    $path =  Yii::$app->storage->upload('images', $imageBinary, 'jpg');
    $model = new self;
    $model->path = $path;
    $model->save();
    return $model;
}

Π”Π°Π»Π΅Π΅, Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ получСния ссылки Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:, (*17)

public function getUrl()
{
    return Yii::$app->storage->getUrl('images', $this->path);
}

ПослС Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ изобраТСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:, (*18)

$image = app\models\Image::upload($imageBinary);

ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ прСдставлСнии:, (*19)

<img src="<?= $image->url ?>">

\ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с использованиСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰:, (*20)

public static function upload($imageBinary)
{
    $path = Yii::$app->storage->images->upload($imageBinary, 'jpg');
    $model = new self;
    $model->path = $path;
    $model->save();
    return $model;
}

public function getUrl()
{
    return Yii::$app->storage->images->getUrl($this->path);
}

\ Π‘Ρ‚ΠΎΠΈΡ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ рСализация ΠΌΠ΅Ρ‚ΠΎΠ΄Π° getUrl Π½Π΅ зависит ΠΎΡ‚ названия Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ хранСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ… ΠΈ Π»Π΅Π³ΠΊΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠΈ., (*21)

The Versions

02/07 2018

dev-master

9999999-dev

  Sources   Download

BSD-3-Clause

The Requires

 

by Kirill Kasyanov

yii2 storage

02/07 2018

3.0.2

3.0.2.0

  Sources   Download

BSD-3-Clause

The Requires

 

by Kirill Kasyanov

yii2 storage

14/03 2018

3.0.1

3.0.1.0

  Sources   Download

BSD-3-Clause

The Requires

 

by Kirill Kasyanov

yii2 storage

04/02 2018

3.0.0

3.0.0.0

  Sources   Download

BSD-3-Clause

The Requires

 

by Kirill Kasyanov

yii2 storage

10/12 2017

v2.0.1

2.0.1.0

  Sources   Download

BSD-3-Clause

The Requires

 

by Kirill Kasyanov

yii2 storage

10/12 2017

2.0.1

2.0.1.0

  Sources   Download

BSD-3-Clause

The Requires

 

by Kirill Kasyanov

yii2 storage

10/12 2017

v2.0.0

2.0.0.0

  Sources   Download

BSD-3-Clause

The Requires

 

by Kirill Kasyanov

yii2 storage

10/12 2017

2.0.0

2.0.0.0

  Sources   Download

BSD-3-Clause

The Requires

 

by Kirill Kasyanov

yii2 storage

17/10 2017

v1.0.1

1.0.1.0

  Sources   Download

BSD-3-Clause

The Requires

 

by Kirill Kasyanov

yii2 storage

17/10 2017

1.0.1

1.0.1.0

  Sources   Download

BSD-3-Clause

The Requires

 

by Kirill Kasyanov

yii2 storage

08/10 2017

v1.0

1.0.0.0

  Sources   Download

BSD-3-Clause

The Requires

 

by Kirill Kasyanov

yii2 storage

08/10 2017

1.0

1.0.0.0

  Sources   Download

BSD-3-Clause

The Requires

 

by Kirill Kasyanov

yii2 storage

10/02 2017

v0.1.2

0.1.2.0

Storage component for Yii2 framework

  Sources   Download

The Requires

 

07/02 2017

v0.1.1

0.1.1.0

Storage component for Yii2 framework

  Sources   Download

The Requires

 

07/02 2017

v0.1

0.1.0.0

Storage component for Yii2 framework

  Sources   Download

The Requires