Terwijl de PHP-bibliotheek van GrabzIt zich richt op het aanbieden van een bibliotheek die in elk PHP-project kan worden gebruikt. symfony PHP-projecten worden op een unieke manier samengesteld die iets meer werk vereist.
Symfony is een van de grootste PHP Frameworks die momenteel wordt gebruikt en versnelt webontwikkeling door een herbruikbare set bibliotheken en componenten aan te bieden. Van welke Grabz is het nu een onderdeel, dankzij Torben Lundsgaard van TLAMedia die een bundel GrabzIt voor Symfony heeft gemaakt. Deze open source software maakt gebruik van de MIT-licentie.
Om de GrabzIt-bundel te krijgen, moet u deze eerst installeren met componist.
composer require tlamedia/grabzit-bundle
Voeg het dan toe aan je kernel.
public function registerBundles()
{
$bundles = array(
//...
new Tla\GrabzitBundle\TlaGrabzitBundle(),
//…
Configuratie
Koop jouw API-sleutel en geheim en voeg ze als volgt toe aan uw configuratiebestand.
# config.yml
tla_grabzit:
key: 'Sign in to view your Application Key'
secret: 'Sign in to view your Application Secret'
De bundel registreert verschillende services die, wanneer ze worden aangeroepen, de juiste GrabzIt-klasse retourneren.
Hoe Captures te genereren
Een voorbeeld van het genereren van een miniatuur in het 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(1024);
$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;
}
}
Captures ontvangen met een handler
Een voorbeeld van het ontvangen van opnames van GrabzIt met behulp van een handler in het Symfony-framework. Natuurlijk moet u dit aanpassen aan uw eigen wensen.
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);
}
}
Dit Help-artikel is uitgebreid vanaf de hulp voor deze bundel gedetailleerd op GitHub.