ওয়েব ক্যাপচার এবং রূপান্তর করার সরঞ্জামসমূহ

গ্রাবিজআইটি'র ক্যাপচার এপিআই দিয়ে পিএইচপি'র সিমফনি ফ্রেমওয়ার্ক ব্যবহার করা

গ্র্যাবজিট-এর পিএইচপি লাইব্রেরিতে এমন একটি লাইব্রেরি সরবরাহের দিকে দৃষ্টি নিবদ্ধ করা হয়েছে যা কোনও পিএইচপি প্রকল্পে ব্যবহার করা যেতে পারে। Symfony পিএইচপি প্রকল্পগুলি এক অনন্য উপায়ে একসাথে রাখা হয়েছে যার জন্য আরও কিছুটা কাজের প্রয়োজন।

সিমফনি হ'ল অন্যতম বৃহত্তম পিএইচপি ফ্রেমওয়ার্ক যা বর্তমানে এটি গ্রন্থাগার এবং উপাদানগুলির পুনরায় ব্যবহারযোগ্য সেট সরবরাহ করে ওয়েব বিকাশের গতি বাড়ায়। টরবেন লন্ডসগার্ডকে ধন্যবাদ, যা গ্র্যাবআইটি এখন একটি অংশ TLAMedia যিনি সিমফোনির জন্য গ্র্যাবজিট এর একটি বান্ডিল তৈরি করেছেন। এই ওপেন সোর্স সফ্টওয়্যারটি ব্যবহার করে এমআইটি লাইসেন্স.

গ্র্যাবজিট বান্ডিলটি পেতে আপনাকে প্রথমে এটি সুরকারের সাথে ইনস্টল করতে হবে।

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'

বান্ডিলটি বেশ কয়েকটি পরিষেবা নিবন্ধভুক্ত করে যাকে বলা হয় উপযুক্ত গ্র্যাবিজআইটি শ্রেণিকে প্রদান করে।

পরিষেবা শনাক্তকারী গ্রাবাজিট ক্লাস
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;
    }
}

কিভাবে একজন হ্যান্ডলারের সাহায্যে ক্যাপচার পাবেন

সিমফনি ফ্রেমওয়ার্কে হ্যান্ডলার ব্যবহার করে গ্রাবিজটি থেকে ক্যাপচারগুলি কীভাবে গ্রহণ করা যায় তার একটি উদাহরণ। অবশ্যই আপনার নিজের প্রয়োজনীয়তার সাথে মেলে এটি পরিবর্তন করতে হবে।

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

এই সহায়তা নিবন্ধটি থেকে প্রসারিত করা হয়েছে গিটহাব সম্পর্কিত এই বান্ডিলটির জন্য সহায়তা করুন.