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

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

جبکہ GrabzIt کی پی ایچ پی لائبریری ایک لائبریری کی فراہمی پر فوکس کرتی ہے جسے کسی بھی پی ایچ پی پروجیکٹ میں استعمال کیا جاسکتا ہے۔ سمفونی پی ایچ پی کے منصوبوں کو ایک انوکھے طریقے سے جوڑا گیا ہے جس میں تھوڑا سا مزید کام کرنے کی ضرورت ہے۔

سیمفونی پی ایچ پی کے سب سے بڑے فریم ورک میں سے ایک ہے جو اس وقت لائبریریوں اور اجزاء کو دوبارہ قابل استعمال سیٹ فراہم کرکے ویب ڈویلپمنٹ کو تیز کرتا ہے۔ توربین لنڈسگارڈ کی بدولت اب کون سا گربزٹ اس کا ایک حصہ ہے طلمیڈیا جس نے سیمفونی کے لئے گربز آئٹ کا ایک بنڈل بنایا۔ یہ اوپن سورس سافٹ ویئر استعمال کرتا ہے MIT لائسنس.

GrabzIt بنڈل حاصل کرنے کے ل you ، آپ کو پہلے اسے کمپوزر کے ساتھ نصب کرنا ہوگا۔

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_grabzit.imageoptions GrabzItImageOptions
tla_grabzit.pdfoptions GrabzItPDFOptions
tla_grabzit.docxoptions GrabzItDOCXOptions
tla_grabzit.animationoptions GrabzItAnimationOptions
tla_grabzit.tableoptions 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(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;
    }
}

ایک ہینڈلر کے ذریعہ کیپچرس کیسے وصول کریں

سیمفونی فریم ورک میں کسی ہینڈلر کا استعمال کرتے ہوئے GrabzIt سے گرفت حاصل کرنے کا طریقہ کی ایک مثال۔ یقینا آپ کو اپنی ضروریات سے مطابقت پانے کے ل this اسے تبدیل کرنے کی ضرورت ہوگی۔

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);
    }
}

اس مدد مضمون کو توسیع دی گئی ہے گٹ ہب پر تفصیلا اس بنڈل کے لئے مدد کریں.