定制 taffovelikoff/imagekit-adapter 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

taffovelikoff/imagekit-adapter

最新稳定版本:2.0.0

Composer 安装命令:

composer require taffovelikoff/imagekit-adapter

包简介

Flysystem adapter for ImageKit.

README 文档

README

A Flysystem adapter for ImageKit. This package used to be Laravel only, but it can now be used in any php project! If you are using an older version of this package in a Laravel app, please read the "Usage in Laravel" section.

Contents

⚙️ Installation

????️ Setup

????‍???? Usage

???? Usage in Laravel

???? Contributing

???? License

Installation

You can install the package via composer:

composer require taffovelikoff/imagekit-adapter

Setup

First you will need to sing up for an ImageKit account. Then you can go to https://imagekit.io/dashboard#developers to get your public key, private key and url endpoint.

Usage

use ImageKit\ImageKit;
use League\Flysystem\Filesystem;
use TaffoVelikoff\ImageKitAdapter\ImageKitAdapter;

// Client
$client = new ImageKit (
    'your_public_key',
    'your_private_key',
    'your_endpoint_url' // Should look something like this https://ik.imagekit.io/qvkc...
);

// Adapter
$adapter = new ImagekitAdapter($client);

// Filesystem
$fsys = new Filesystem($adapter);

// Check if file exists example
$file = $fsys->fileExists('default-image.jpg');

If you need to purge the cache after a file was updated/deleted you can add "purge_cache" to the $options array of the adapter.

$adapter = new ImagekitAdapter($client, $options = [
    'purge_cache_update'    => [
        'enabled'       => true,
        'endpoint_url'  => 'your_endpoint_url'
    ]
]);

This will create a purge cache request. You can read more here: https://docs.imagekit.io/features/cache-purging

Usage in Laravel

You can create a new driver by extending the Storage in the boot() method of AppServiceProvider.

public function boot()
{
    Storage::extend('imagekit', function ($app, $config) {
        $adapter = new ImagekitAdapter(

            new ImageKit(
                $config['public_key'],
                $config['private_key'],
                $config['endpoint_url']
            ),

            $options = [ // Optional
                'purge_cache_update'    => [
                    'enabled'       => true,
                    'endpoint_url'  => 'your_endpoint_url'
                 ]
            ] 

        );

        return new FilesystemAdapter(
            new Filesystem($adapter, $config),
            $adapter,
            $config
        );
    });
}

Then create a new disk in config/filesystems.php:

'imagekit' => [
    'driver' => 'imagekit',
    'public_key' => env('IMAGEKIT_PUBLIC_KEY'),
    'private_key' => env('IMAGEKIT_PRIVATE_KEY'),
    'endpoint_url' => env('IMAGEKIT_ENDPOINT_URL')
],

Don't forget to add your keys in .env:

IMAGEKIT_PUBLIC_KEY = your-public-key
IMAGEKIT_PRIVATE_KEY = your-private-key
IMAGEKIT_ENDPOINT_URL = your-endpint-url

And now you can use Laravel's Storage facade:

Storage::disk('imagekit')->put('test.txt', 'This is a test file.');

return response(Storage::disk('imagekit')->get('test.txt'));

If you already use an older version of taffovelikoff/imagekit-adapter in your Laravel app you most likely published the configuration file config/imagekit.php. It was possible to set a few options there:

return [
    'purge_cache_update'    => true,
    'extend_storage'        => true,
];

The extend_storage => true setting automatically expanded the Storage facade and created 'imagekit' driver. If you were using that option you need to manually add the new driver in AppServiceProvider like the example above.

If the purge_cache_update setting was set to true a cache purge request was made when deleting/updating a file. In order tо keep this functionality all you need to do now is add purge_cache_update parameter in the options of the ImageKitAdapter when extending the storage.

Contributing

Pull requests are welcome. Please feel free to lodge any issues or feedback as discussion points.

License

MIT

统计信息

  • 总下载量: 15.73k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 13
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 13
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 未知

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固