웹 캡처 및 변환 도구

GrabzIt의 Capture API와 함께 PHP의 Symfony 프레임 워크 사용

GrabzIt의 PHP 라이브러리는 모든 PHP 프로젝트에서 사용할 수있는 라이브러리를 제공하는 데 중점을 둡니다. 심포니 PHP 프로젝트는 조금 더 많은 작업이 필요한 고유 한 방식으로 구성됩니다.

Symfony는 현재 사용되는 가장 큰 PHP 프레임 워크 중 하나이며 재사용 가능한 라이브러리 및 컴포넌트 세트를 제공하여 웹 개발 속도를 높입니다. Torben Lundsgaard 덕분에 이제는 일부 Grabz입니다. TLAMedia Symfony를 위해 GrabzIt 번들을 만들었습니다. 이 오픈 소스 소프트웨어는 MIT 라이센스.

GrabzIt 번들을 받으려면 먼저 composer와 함께 설치해야합니다.

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.pdf 옵션 GrabzItPDFOptions
tla_grabzit.docx 옵션 GrabzItDOCXOptions
tla_grabzit.animationoptions GrabzItAnimationOptions
tla_grabzit.table 옵션 GrabzItTableOptions

캡처를 생성하는 방법

Symfony Framework에서 썸네일을 생성하는 방법의 예입니다.

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

핸들러로 캡처를받는 방법

Symfony 프레임 워크의 핸들러를 사용하여 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에 대한이 번들에 대한 도움말.