ویب پر گرفت اور تبدیل کرنے کے اوزار

GrabzIt کے کیپچر API کے ساتھ پی ایچ پی کے سیمفونی فریم ورک کا استعمال

جبکہ 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 پر تفصیلی اس بنڈل کے لیے مدد.