Tandis que la bibliothèque PHP de GrabzIt se concentre sur la fourniture d'une bibliothèque qui peut être utilisée dans n'importe quel projet PHP. Symfony Les projets PHP sont élaborés d'une manière unique qui nécessite un peu plus de travail.
Symfony est l'un des frameworks PHP les plus utilisés actuellement. Il accélère le développement Web en fournissant un ensemble réutilisable de bibliothèques et de composants. Dont GrabzIt fait désormais partie, grâce à Torben Lundsgaard de TLAMedia qui a créé un bundle de GrabzIt pour Symfony. Ce logiciel open source utilise le MIT License.
Pour obtenir le GrabzIt Bundle, vous devez d'abord l'installer avec composer.
composer require tlamedia/grabzit-bundle
Ajoutez-le ensuite à votre noyau.
public function registerBundles() { $bundles = array( //... new Tla\GrabzitBundle\TlaGrabzitBundle(), //…
Obtenez votre Clé et secret de l'API et ajoutez-les à votre fichier de configuration comme ceci.
# config.yml tla_grabzit: key: 'Sign in to view your Application Key' secret: 'Sign in to view your Application Secret'
Le bundle enregistre plusieurs services qui, lorsqu'ils sont appelés, renvoient la classe GrabzIt appropriée.
Identifiant du service | Cours 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 |
Un exemple de comment générer une vignette dans le Framework 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; } }
Un exemple de comment recevoir des captures de GrabzIt à l'aide d'un gestionnaire dans le framework Symfony. Bien sûr, vous devrez modifier cela pour répondre à vos propres besoins.
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); } }
Cet article d'aide a été développé à partir du aide pour ce bundle détaillée sur GitHub.