GrabzIt의 PHP 라이브러리는 모든 PHP 프로젝트에서 사용할 수 있는 라이브러리를 제공하는 데 중점을 둡니다. 심포니 PHP 프로젝트는 좀 더 많은 작업이 필요한 독특한 방식으로 구성됩니다.
Symfony는 현재 사용되는 가장 큰 PHP 프레임워크 중 하나이며 재사용 가능한 라이브러리 및 구성 요소 세트를 제공하여 웹 개발 속도를 높입니다. GrabzIt은 이제 Torben Lundsgaard의 일부가 되었습니다. TL미디어 Symfony용 GrabzIt 번들을 만든 사람입니다. 이 오픈 소스 소프트웨어는 다음을 사용합니다. MIT 라이센스.
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.pdf옵션 | GrabzItPDFOptions |
tla_grabzit.docxoptions | GrabzItDOCXOptions |
tla_grabzit.animationoptions | GrabzItAnimationOptions |
tla_grabzit.tableoptions | 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(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; } }
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에 자세히 설명된 이 번들에 대한 도움말.