Enquanto a biblioteca PHP do GrabzIt se concentra em fornecer uma biblioteca que pode ser usada em qualquer projeto PHP. Symfony Os projetos PHP são montados de uma forma única que requer um pouco mais de trabalho.
Symfony é um dos maiores frameworks PHP usados atualmente, ele acelera o desenvolvimento web ao fornecer um conjunto reutilizável de bibliotecas e componentes. Do qual GrabzIt agora faz parte, graças a Torben Lundsgaard de TLAMedia que criou um pacote de GrabzIt para Symfony. Este software de código aberto usa o MIT License.
Para obter o pacote GrabzIt você deve primeiro instalá-lo com o compositor.
composer require tlamedia/grabzit-bundle
Em seguida, adicione-o ao seu kernel.
public function registerBundles() { $bundles = array( //... new Tla\GrabzitBundle\TlaGrabzitBundle(), //…
Obtenha a sua Chave e segredo da API e adicione-os ao seu arquivo de configuração assim.
# config.yml tla_grabzit: key: 'Sign in to view your Application Key' secret: 'Sign in to view your Application Secret'
O pacote registra vários serviços que, quando chamados, retornam a classe GrabzIt apropriada.
Identificador de serviço | Classe GrabzIt |
---|---|
tla_grabzit.client | GrabzItClient |
tla_grabzit.imageoptions | GrabzItImageOptions |
tla_grabzit.pdfopções | GrabzItPDFOptions |
tla_grabzit.docxoptions | GrabzItDOCXOptions |
tla_grabzit.animationoptions | GrabzItAnimationOptions |
tla_grabzit.tableoptions | GrabzItTableOptions |
Um exemplo de como gerar uma miniatura no 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; } }
Um exemplo de como receber capturas do GrabzIt usando um manipulador no framework Symfony. É claro que você precisaria alterar isso para atender às suas próprias necessidades.
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); } }
Este artigo de ajuda foi expandido do ajuda para este pacote detalhado no GitHub.