Alors que la bibliothèque PHP de GrabzIt se concentre sur la fourniture d'une bibliothèque pouvant être utilisée dans tout projet PHP. Symfony Les projets PHP sont mis en place de manière unique, ce qui nécessite un peu plus de travail.
Symfony est l’un des plus gros framework PHP utilisé actuellement. Il accélère le développement Web en fournissant un ensemble réutilisable de bibliothèques et de composants. Dont GrabzIt fait maintenant partie, grâce à Torben Lundsgaard de TLAMedia qui a créé un paquet de GrabzIt pour Symfony. Ce logiciel open source utilise la MIT License.
Pour obtenir le paquet GrabzIt, 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(),
//…
configuration
Obtenez votre Clé et secret de l'API et ajoutez-les à votre fichier de configuration comme ça.
# config.yml
tla_grabzit:
key: 'Sign in to view your Application Key'
secret: 'Sign in to view your Application Secret'
Le paquet enregistre plusieurs services qui, lorsqu'ils sont appelés, renvoient la classe GrabzIt appropriée.
Comment générer des captures
Un exemple de la manière de générer une vignette dans 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;
}
}
Comment recevoir des captures avec un gestionnaire
Un exemple de la façon de recevoir des captures de GrabzIt en utilisant 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 paquet détaillé sur GitHub.