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

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

ग्रॅबझिटची पीएचपी लायब्ररी कोणत्याही पीएचपी प्रोजेक्टमध्ये वापरली जाऊ शकेल अशी लायब्ररी उपलब्ध करुन देण्यावर भर देते. सिम्फनी पीएचपी प्रकल्प अद्वितीय मार्गाने एकत्र ठेवले आहेत ज्यांना थोडे अधिक काम आवश्यक आहे.

सध्या वापरल्या जाणार्‍या सिमफोनी सर्वात मोठ्या पीएचपी फ्रेमवर्कपैकी एक आहे जी लायब्ररी आणि घटकांचा पुनर्वापर करण्यायोग्य सेट प्रदान करुन वेब विकासाची गती वाढवते. तो ग्रॅबझीट हा आता एक भाग आहे, त्याबद्दल तोरबेन लुंड्सगार्डचे आभार स्लॅमिडिया ज्याने सिम्फनीसाठी ग्रॅबझिटचा बंडल तयार केला. हे मुक्त स्रोत सॉफ्टवेअर वापरते एमआयटी परवाना.

ग्रॅबझिट बंडल मिळविण्यासाठी आपण प्रथम ते संगीतकाराने स्थापित केले पाहिजे.

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 वर्ग
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);
    }
}

पासून हा मदत लेख विस्तृत केला गेला आहे गिटहब वर तपशीलवार या बंडलसाठी मदत करा.