Podczas gdy biblioteka PHP GrabzIt koncentruje się na dostarczaniu biblioteki, której można używać w dowolnym projekcie PHP. Symfony Projekty PHP są składane w unikalny sposób, który wymaga nieco więcej pracy.
Symfony to jeden z największych obecnie używanych frameworków PHP, który przyspiesza tworzenie stron internetowych, udostępniając zestaw bibliotek i komponentów wielokrotnego użytku. Którego GrabzIt jest teraz częścią, dzięki Torbenowi Lundsgaardowi TLAMedia który stworzył pakiet GrabzIt dla Symfony. To oprogramowanie typu open source wykorzystuje rozszerzenie MIT License.
Aby otrzymać pakiet GrabzIt, musisz najpierw zainstalować go za pomocą kompozytora.
composer require tlamedia/grabzit-bundle
Następnie dodaj go do swojego jądra.
public function registerBundles() { $bundles = array( //... new Tla\GrabzitBundle\TlaGrabzitBundle(), //…
Weź swój Klucz API i klucz tajny i dodaj je do pliku konfiguracyjnego w ten sposób.
# config.yml tla_grabzit: key: 'Sign in to view your Application Key' secret: 'Sign in to view your Application Secret'
Pakiet rejestruje kilka usług, które po wywołaniu zwracają odpowiednią klasę GrabzIt.
Identyfikator usługi | Klasa GrabzIt |
---|---|
tla_grabzit.client | GrabzItClient |
tla_grabzit.imageoptions | GrabzItImageOptions |
tla_grabzit.pdfoptions | GrabzItPDFOptions |
tla_grabzit.docxoptions | GrabzItDOCXOptions |
tla_grabzit.animationoptions | GrabzItAnimationOptions |
tla_grabzit.tableoptions | GrabzItTableOptions |
Przykład generowania miniatury w Symfony Framework.
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; } }
Przykład otrzymywania przechwyceń z GrabzIt przy użyciu modułu obsługi w środowisku Symfony. Oczywiście musiałbyś to zmienić, aby dopasować je do własnych wymagań.
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); } }
Ten artykuł pomocy został rozszerzony z pomoc dla tego pakietu wyszczególniona w GitHub.