جبکہ GrabzIt کی PHP لائبریری ایک ایسی لائبریری فراہم کرنے پر مرکوز ہے جسے کسی بھی PHP پروجیکٹ میں استعمال کیا جا سکے۔ سمفونی پی ایچ پی پروجیکٹس کو ایک منفرد انداز میں اکٹھا کیا جاتا ہے جس کے لیے کچھ زیادہ کام کی ضرورت ہوتی ہے۔
سیمفونی اس وقت استعمال ہونے والے سب سے بڑے پی ایچ پی فریم ورکس میں سے ایک ہے جو لائبریریوں اور اجزاء کا دوبارہ قابل استعمال سیٹ فراہم کرکے ویب کی ترقی کو تیز کرتا ہے۔ جس GrabzIt اب ایک حصہ ہے، Torben Lundsgaard کی بدولت TLAMedia جس نے سیمفونی کے لیے GrabzIt کا ایک بنڈل بنایا۔ یہ اوپن سورس سافٹ ویئر استعمال کرتا ہے۔ MIT لائسنس.
GrabzIt بنڈل حاصل کرنے کے لیے آپ کو پہلے اسے کمپوزر کے ساتھ انسٹال کرنا ہوگا۔
composer require tlamedia/grabzit-bundle
پھر اسے اپنے کرنل میں شامل کریں۔
public function registerBundles() { $bundles = array( //... new Tla\GrabzitBundle\TlaGrabzitBundle(), //…
اپنے حاصل کریں API کلید اور خفیہ اور انہیں اپنی تشکیل فائل میں اس طرح شامل کریں۔
# config.yml tla_grabzit: key: 'Sign in to view your Application Key' secret: 'Sign in to view your Application Secret'
بنڈل کئی سروسز کو رجسٹر کرتا ہے جنہیں کال کرنے پر مناسب GrabzIt کلاس واپس آتی ہے۔
سروس شناخت کنندہ | GrabzIt کلاس |
---|---|
tla_grabzit.client | GrabzItClient |
tla_grabzitimageoptions | GrabzItImageOptions |
tla_grabzit.pdfoptions | GrabzItPDFOptions |
tla_grabzitdocxoptions | GrabzItDOCXOptions |
tla_grabzitanimationoptions | GrabzItAnimationOptions |
tla_grabzittableoptions | GrabzItTableOptions |
سیمفونی فریم ورک میں تھمب نیل بنانے کے طریقے کی ایک مثال۔
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; } }
سیمفونی فریم ورک میں ہینڈلر کا استعمال کرتے ہوئے GrabzIt سے کیپچر حاصل کرنے کے طریقے کی ایک مثال۔ یقیناً آپ کو اپنی ضروریات کو پورا کرنے کے لیے اسے تبدیل کرنے کی ضرورت ہوگی۔
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); } }
اس امدادی مضمون کو سے بڑھا دیا گیا ہے۔ GitHub پر تفصیلی اس بنڈل کے لیے مدد.