בעוד שספריית PHP של GrabzIt מתמקדת באספקת ספריה שניתן להשתמש בה בכל פרויקט PHP. סימפוני פרויקטים של PHP מורכבים בצורה ייחודית הדורשת קצת יותר עבודה.
Symfony היא אחת ממסגרות ה- PHP הגדולות ביותר בהן נעשה שימוש כיום והיא מאיצה את פיתוח האינטרנט על ידי מתן מערך ספריות ורכיבים לשימוש חוזר. אשר GrabzIt הוא עכשיו חלק ממנו, בזכות טורבן לונדסארד מ תלמידיה שיצר חבילה של GrabzIt לסימפוניה. תוכנת קוד פתוח זו משתמשת ב- רישיון MIT.
כדי להשיג את ה- GrabzIt Bundle, עליכם להתקין אותו תחילה עם המלחין.
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.
כיצד ליצור תצלומים
דוגמה ליצירת תמונה ממוזערת במסגרת 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;
}
}
כיצד לקבל תצלומים עם מטפל
דוגמה כיצד לקבל תצלומים מ- GrabzIt באמצעות מטפל במסגרת Symfony. כמובן שתצטרך לשנות זאת כך שיתאים לדרישות שלך.
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.