一方、GrabzIt の PHP ライブラリは、あらゆる PHP プロジェクトで使用できるライブラリを提供することに重点を置いています。 Symfony PHP プロジェクトは独自の方法でまとめられているため、もう少し作業が必要です。
Symfony は現在使用されている最大の PHP フレームワークの XNUMX つで、再利用可能なライブラリとコンポーネントのセットを提供することで Web 開発を高速化します。 Torben Lundsgaard 氏のおかげで、現在 GrabzIt はその一部となっています。 TLAメディア Symfony 用の GrabzIt のバンドルを作成した人。 このオープンソース ソフトウェアは、 MITライセンス.
GrabzIt Bundle を入手するには、まず Composer を使用してインストールする必要があります。
composer require tlamedia/grabzit-bundle
次に、それをカーネルに追加します。
public function registerBundles() { $bundles = array( //... new Tla\GrabzitBundle\TlaGrabzitBundle(), //…
あなたを取得 APIキーと秘密 次のように設定ファイルに追加します。
# config.yml tla_grabzit: key: 'Sign in to view your Application Key' secret: 'Sign in to view your Application Secret'
バンドルは、呼び出されたときに適切な GrabzIt クラスを返すいくつかのサービスを登録します。
サービス識別子 | GrabzIt クラス |
---|---|
tla_grabzit.client | GrabzItClient |
tla_grabzit。imageoptions | GrabzItImageOptions |
tla_grabzit.pdfオプション | GrabzItPDFOptions |
tla_grabzit。docxoptions | GrabzItDOCXOptions |
tla_grabzit。animationoptions | GrabzItAnimationOptions |
tla_grabzit。tableoptions | GrabzItTableOptions |
Symfony フレームワークでサムネイルを生成する方法の例。
namespace App\Service; use Symfony\Component\DependencyInjection\ContainerInterface as Container; class ThumbnailGenerator { private $container; public function __construct(Container $container) { $this->router = $router; $this->container = $container; } public function generateThumbnail($url) { $grabzItHandlerUrl = 'https://www.my-grabzit-thumbnail-site.com/api/thumbmail-ready'; $options = $this->container->get('tla_grabzit.imageoptions'); $options->setBrowserWidth(1366); $options->setBrowserHeight(768); $options->setFormat("png"); $options->setWidth(320); $options->setHeight(240); $options->setCustomId($domain); $grabzIt = $this->container->get('tla_grabzit.client'); $grabzIt->URLToImage($url, $options); $grabzIt->Save($grabzItHandlerUrl); try { $grabzIt->URLToImage($url, $options); $grabzIt->Save($grabzItHandlerUrl); $result = true; } catch (\Throwable $t) { $result = false; } return $result; } }
Symfony フレームワークのハンドラーを使用して GrabzIt からキャプチャを受信する方法の例。 もちろん、独自の要件に合わせてこれを変更する必要があります。
namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; class ApiController extends Controller { public function thumbnailReadyAction(Request $request) { $id = urldecode($request->query->get('id')); $customId = $request->query->get('customid'); $thumbnailFormat = $request->query->get('format'); if ($id && $customId && $thumbnailFormat) { $grabzItApplicationKey = $this->container->getParameter('tla_grabzit.key'); if (0 === strpos($id, $grabzItApplicationKey)) { $grabzIt = $this->container->get('tla_grabzit.client'); $result = $grabzIt->GetResult($id); if ($result) { $rootPath = $this->get('kernel')->getRootDir() . '/../'; $thumbnailsPath = $rootPath . 'var/thumbnails/'; $fileName = $customId. '.' .$thumbnailFormat; file_put_contents($thumbnailsPath . $fileName, $result); } else { throw $this->createNotFoundException('GrabzIt did not return a file'); } } else { throw $this->createNotFoundException('Wrong key - Unauthorized access'); } } else { throw $this->createNotFoundException('Missing parameters'); } return new Response(null, 200); } }
このヘルプ記事は、 GitHub で詳細に説明されているこのバンドルのヘルプ.