phpでバーコードを作ってGoogleAppEngineでCDN配信する
みんな大好きPHPもたまにはということで
動的にバーコードを作りたいんですが、バーコードの形式なんて早々変わるものでもないので……
どうせなら作成した結果はCDNに乗せてしまいたいなというニッチな目的を達成しようと思います。
php-barcode-generatorというライブラリを使用しています。
制作物
Demo
https://neko-tech-test.appspot.com/gae-php-barcode
コカ・コーラのバーコードです
実装内容!
barcode.php
<?php
require_once "vendor/autoload.php";
$generator = new Picqer\Barcode\BarcodeGeneratorPNG();
// CND配信されると10sかからないよ!
sleep(10);
header("Content-type: image/png");
header("cache-control: public, max-age=3600");
echo $generator->getBarcode(
'4902102072618',
$generator::TYPE_EAN_13,
190 / 95,
100
);
<?php
require_once "vendor/autoload.php";
$generator = new Picqer\Barcode\BarcodeGeneratorPNG();
// CND配信されると10sかからないよ!
sleep(10);
header("Content-type: image/png");
header("cache-control: public, max-age=3600");
echo $generator->getBarcode(
'4902102072618',
$generator::TYPE_EAN_13,
190 / 95,
100
);
超シンプルです。
説明する必要あるかな……
composerでinstallしたライブラリを読み込んで、画像データを返してあげています。
この時にcache-controlのheaderをつけて返してあげると!
Google App Engineの強力なエッジキャッシュに乗っかってくれるので、sleep(10)がかからなくなります。
キャッシュについてはこの記事がわかりやすかったです。
乗せる前
10.25s!
まぁ、内部でsleep(10)してるからね……
乗せた後にリロード!
11ms!!
はやーい!!
変態的な速さでした!!
Author And Source
この問題について(phpでバーコードを作ってGoogleAppEngineでCDN配信する), 我々は、より多くの情報をここで見つけました https://qiita.com/fumihiko-hidaka/items/6ce6d5651b06ac5595cc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .