Glide は、指定されたパラメーターに基づいてブラウザー用の画像コンテンツを動的に生成するのに役立つ画像操作ライブラリです。達成
動的な画像のトリミングや透かしなどについて、このライブラリは、使いやすいパッケージ化と Glide への拡張機能を提供し、ネイティブ ライブラリの基礎となる抽象化の一部を保護することで、ThinkPHP ユーザーが ThinkPHP プロジェクト内の画像の動的なトリミング機能をより適切に追加できるようにします。 . . インストール
次のコマンドを実行してインストールします。
$ composer require slince/think-glide使い方クイックスタートThinkPHPから真ん中が追加されたのでソフトウェアの 5.1.6 機能のため、 ThinkPHP 5.1.6 以降のバージョンではミドルウェア登録を使用します。 application/middleware.php# を開きます。 ## ファイル (存在しない場合は作成するだけ)、ミドルウェアを登録します:
return [ //... \Slince\Glide\GlideMiddleware::factory([ 'source' => __DIR__ . '/../img', ]) ];
ThinkPHP 5.1.0 または5.1.6 以降:
// 在 /route/route.php 注册下面路由 Route::get('images/:file', 'index/handleImageRequest'); //在控制器 index 里创建action public function handleImageRequest() { $middleware = \Slince\Glide\GlideMiddleware::factory([ 'source' => App::getRootPath() . '/img', ]); return $middleware(app('request'), function(){ return app('response'); }); }
source
はローカルの画像ファイル フォルダーの場所です。このディレクトリに画像user.jpg
があると仮定して、ブラウザを開いて次のリンクにアクセスします:http://youdomain.com/images/user.jpg?w=100&h=100縮小した写真。
パラメータの説明
パラメータ名
タイプ
source | string | ||
---|---|---|---|
です | cachestring | キャッシュ ファイルの場所。デフォルトは | |
No | cacheTime | stringキャッシュ時間、例 | |
No | で応答します。 | signKey | string安全な署名 |
onException | callable | 例外処理ハンドラー | |
baseUrl | string | ルーティング プレフィックス (プレフィックスの場合)が一致します ミドルウェアの実行が開始されます。デフォルトは | |
No |
セキュリティ署名 |
Does ですセキュリティ署名を有効にしない この場合、ユーザーはクエリ内のパラメータを調整して画像を自分でトリミングできます。これを行うつもりがない場合は、 |
echo app('glide.url_builder')->getUrl('user.jpg', ['w' => 100, 'h' => 100]);
//你会得到如下链接:/images/user.jpg?w=100&h=100&s=af3dc18fc6bfb2afb521e587c348b904
例外処理
ユーザーが存在しないアドレスにアクセスした場合画像を削除するか、セキュリティ検証を実行しない場合、システムは例外をスローします。デフォルトの動作を onException
:
\Slince\Glide\GlideMiddleware::factory([ 'source' => __DIR__ . '/../img', 'signKey' => 'v-LK4WCdhcfcc%jt*VC2cj%nVpu+xQKvLUA%H86kRVk_4bgG8&CWM#k*', 'onException' => function(\Exception $exception, $request, $server){ if ($exception instanceof \League\Glide\Signatures\SignatureException) { $response = new Response('签名错误', 403); } else { $response = new Response(sprintf('你访问的资源 "%s" 不存在', $request->path()), 404); } return $response; } ])
に置き換えることができます。クロージャは
think\Response# を返す必要があることに注意してください。 ## インスタンス; クイック リファレンストリミングをサポートするだけでなく、グライドは他の操作もサポートします。対応するパラメーターを渡すだけです。サポートされているパラメーターを確認するには、ここを参照してください: