वेब कॅप्चर आणि रूपांतरित करण्यासाठी साधने

ग्रॅबझिटच्या कॅप्चर एपीआय सह पीएचपीचे सिम्फनी फ्रेमवर्क वापरणे

GrabzIt ची PHP लायब्ररी कोणत्याही PHP प्रोजेक्टमध्ये वापरता येणारी लायब्ररी प्रदान करण्यावर लक्ष केंद्रित करते. सिम्फनी PHP प्रकल्प एका अनोख्या पद्धतीने एकत्र केले जातात ज्यासाठी थोडे अधिक काम आवश्यक आहे.

सिम्फनी हे सध्या वापरले जाणारे सर्वात मोठे PHP फ्रेमवर्क आहे जे लायब्ररी आणि घटकांचा पुन्हा वापरता येण्याजोगा संच प्रदान करून वेब विकासाला गती देते. कोणत्या GrabzIt आता एक भाग आहे, Torben Lundsgaard धन्यवाद TLAMedia ज्याने Symfony साठी GrabzIt चे बंडल तयार केले. हे ओपन सोर्स सॉफ्टवेअर वापरते एमआयटी परवाना.

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_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(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 वर तपशीलवार या बंडलसाठी मदत.