GrabzIt'ın PHP Kütüphanesi herhangi bir PHP projesinde kullanılabilecek bir kütüphane sağlamaya odaklanırken. Symfony'nin PHP projeleri, biraz daha fazla çalışma gerektiren benzersiz bir şekilde bir araya getirilir.
Symfony, şu anda kullanılan en büyük PHP Çerçevelerinden biridir ve yeniden kullanılabilir bir kitaplık ve bileşen seti sağlayarak web geliştirmeyi hızlandırır. Torben Lundsgaard sayesinde artık GrabzIt'in bir parçası TLAMedya Symfony için bir GrabzIt paketi yaratan kişi. Bu açık kaynaklı yazılım şunları kullanır: MİT Lisans.
GrabzIt Paketini edinmek için önce onu besteciyle yüklemelisiniz.
composer require tlamedia/grabzit-bundle
Daha sonra kernelinize ekleyin.
public function registerBundles() { $bundles = array( //... new Tla\GrabzitBundle\TlaGrabzitBundle(), //…
Referans API Anahtarı ve Sırrı ve bunları bu şekilde yapılandırma dosyanıza ekleyin.
# config.yml tla_grabzit: key: 'Sign in to view your Application Key' secret: 'Sign in to view your Application Secret'
Paket, çağrıldığında uygun GrabzIt sınıfını döndüren çeşitli hizmetleri kaydeder.
Hizmet Tanımlayıcı | GrabzIt Sınıfı |
---|---|
tla_grabzit.client | GrabzItClient |
tla_grabzit.imageoptions | GrabzItImageOptions |
tla_grabzit.pdfoptions | GrabzItPDFOptions |
tla_grabzit.docxoptions | GrabzItDOCXOptions |
tla_grabzit.animationoptions | GrabzItAnimationOptions |
tla_grabzit.tableoptions | GrabzItTableOptions |
Symfony Çerçevesinde nasıl küçük resim oluşturulacağına bir örnek.
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; } }
Symfony çerçevesindeki bir işleyiciyi kullanarak GrabzIt'tan yakalamaların nasıl alınacağına dair bir örnek. Elbette bunu kendi gereksinimlerinize uyacak şekilde değiştirmeniz gerekecektir.
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); } }
Bu yardım makalesi şu tarihten itibaren genişletilmiştir: GitHub'da ayrıntılı olarak açıklanan bu paket için yardım.