GrabzIt'ın PHP Kütüphanesi, herhangi bir PHP projesinde kullanılabilecek bir kütüphane sağlamaya odaklanır. Symfony'nin PHP projeleri, biraz daha fazla çalışma gerektiren benzersiz bir şekilde bir araya getirilir.
Symfony, şu anda kullanılan en büyük PHP Framework'lerinden biridir ve yeniden kullanılabilir bir dizi kütüphane ve bileşen sağlayarak web geliştirmeyi hızlandırır. Hangi GrabzIt şimdi bir parçası, Torben Lundsgaard sayesinde TLAMedia kim Symfony için bir GrabzIt paketi yarattı. Bu açık kaynaklı yazılım MİT Lisans.
GrabzIt Bundle'ı almak için önce besteci ile yüklemelisiniz.
composer require tlamedia/grabzit-bundle
Sonra çekirdeğine ekleyin.
public function registerBundles()
{
$bundles = array(
//...
new Tla\GrabzitBundle\TlaGrabzitBundle(),
//…
yapılandırma
Referans API Anahtarı ve Sırrı ve bunları gibi config dosyasına ekleyin.
# config.yml
tla_grabzit:
key: 'Sign in to view your Application Key'
secret: 'Sign in to view your Application Secret'
Paket, çağrıldığında uygun GrabzIt sınıfını döndüren birkaç servis kaydeder.
Nasıl Yakalanır?
Symfony Framework'te minik resimlerin nasıl oluşturulduğuna bir örnek.
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;
}
}
Bir işleyici ile yakalamalar nasıl alınır
Symfony çerçevesinde bir işleyici kullanarak GrabzIt'ten yakalamaların bir örneği. Elbette bunu kendi gereksinimlerinize uyacak şekilde değiştirmeniz gerekir.
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);
}
}
Bu yardım makalesi, GitHub’da ayrıntılı olarak verilen bu paket için yardım.