Bu yazıda Yandex’in Arama API’sini PHP uygulamanıza entegre etmek için kullanabileceğiniz yandex-search-php kütüphanesini ele alacağız. Yandex Arama API’sini doğrudan HTTP istekleri ile kullanmak bazı rutin işlemler gerektirdiğinden, bu kütüphane size temiz ve sezgisel bir arayüz sunar.
SDK Neden Gerekli?
Yandex Search API çok güçlü bir araçtır, fakat doğrudan kullanmak bazı zorluklar yaratabilir:
- Kimlik Doğrulama: API, IAM token’ların kullanılmasını gerektirir. Bu da ek bir mantık katmanı oluşturur.
- Cevapların İşlenmesi: API, JSON formatında veriler döner. Bu verilerin uygun yapılandırmalara dönüştürülmesi gerekir.
- Framework’ler İle Entegrasyon: Laravel gibi framework’lerde hazır bir entegrasyon görmek istersiniz.
Kütüphane yandex-search-php, bu sorunları elegant bir şekilde çözer ve API ile etkileşimde bulunmada temiz bir arayüz sunar.
Ana Özellikler
Kütüphane, Yandex Search API’sinin tüm temel işlevlerine erişim sağlar:
- Klasik web araması: İnternette tam metin araması yapabilme.
- Generative Search (YandexGPT): Sorularınızı sorup, anlamlı cevaplar alabilmeniz.
- Görsel Arama: Görsel tarama ve metin tabanlı görsel arama yapabilme.
- Wordstat Analizleri: Popüler anahtar kelimelerin analizi.
- Asenkron İşlemler: Uzun süren arama taleplerini bloklamadan yürütme imkanı.
- Tip Güvenli DTO’lar: Tüm API cevapları tiplenmiş nesneler olarak döner.
- Laravel ile Entegrasyon: Laravel 8-12 ile uyumlu bir şekilde hazır entegrasyon.
Başlangıç Rehberi
Gereksinimler
- PHP 8.0+
- Yandex Cloud’da bir hesap ve Search API etkinleştirilmiş olmalı.
- OAuth token’ı almak için oauth.yandex.ru‘yu kullanmalısınız.
Kurulum
Kurulum, Composer ile standart olarak yapılır:
composer require tigusigalpa/yandex-search-php
Hızlı Başlangıç (PHP)
Normal bir PHP projesinde kullanmak için birkaç satır yeter:
web()->search('Yazılım Geliştirme üzerine makale');
echo "Bulundu: {$results->found} sonuç";
foreach ($results->documents as $doc) {
echo "- {$doc->title} ({$doc->url})\n";
}
Hızlı Başlangıç (Laravel)
Laravel kullanıyorsanız daha da basit:
Konfigürasyon dosyasını yayınlayın:
php artisan vendor:publish --tag=yandex-search-configÇevresel değişkenleri
.envdosyasına ekleyin:YANDEX_OAUTH_TOKEN=your_oauth_token YANDEX_FOLDER_ID=your_folder_idFacade veya bağımlılık enjeksiyonu kullanın:
use Tigusigalpa\YandexSearch\Laravel\Facades\YandexSearch; // Facade ile kullanın $results = YandexSearch::web()->search('Laravel İyi Uygulamaları'); // Yada kontrolörde bağımlılık enjeksiyonu ile public function __construct(private \Tigusigalpa\YandexSearch\YandexSearchClient $searchClient) {} // Arama fonksiyonu public function search(string $query) { $results = $this->searchClient->web()->search($query); return view('search_results', compact('results')); }
Detaylı Özellikler
Web Araması (web())
Temel metin arama modülüdür. search() metodu, arama sorgusu ve isteğe bağlı parametreler alır.
$results = $searchClient->web()->search('PHP 8.3 haberleri', [
'sortSpec' => [
'sortMode' => 'SORT_MODE_BY_TIME', // Zaman sırasına göre
'sortOrder' => 'SORT_ORDER_DESC' // Yeniden eskiye
],
'region' => 225, // Rusya
'page' => 0 // Sonuçların ilk sayfası
]);
echo "Bulundu (sayısal formatta): {$results->found}\n";
echo "Bulundu (okunabilir formatta): {$results->foundHuman}\n";
foreach ($results->documents as $doc) {
echo "Başlık: {$doc->title}\n";
echo "URL: {$doc->url}\n";
echo "Alan: {$doc->domain}\n";
echo "Alıntı: {$doc->passage}\n";
}
Generative Search (gen())
YandexGPT ile entegrasyon sağlar. Sorular sorarak anlamlı cevaplar alabilirsiniz.
$response = $searchClient->gen()->search([
['role' => 'ROLE_USER', 'content' => 'PHP 8.2 ile 8.3 arasındaki temel farklar nelerdir?']
]);
echo "AI Cevabı:\n{$response->answer}\n";
echo "Cevap için kaynaklar:\n";
foreach ($response->sources as $source) {
if ($source->used) {
echo "- {$source->title} ({$source->url})\n";
}
}
Görsel Arama (images())
Görsel arama modülü, anahtar kelimelere göre görsel bulmanıza veya ters görsel arama yapmanıza yardımcı olur.
$results = $searchClient->images()->search('dağlarda gün batımı', [
'imageSpec' => [
'size' => 'IMAGE_SIZE_LARGE', // Sadece büyük görseller
'orientation' => 'IMAGE_ORIENTATION_HORIZONTAL', // Yatay
'color' => 'IMAGE_COLOR_ORANGE' // Ağırlıklı olarak turuncu
]
]);
foreach ($results->images as $image) {
echo "- {$image->url} ({$image->width}x{$image->height})\n";
}
Wordstat Analizi (wordstat())
Yandex.Vordstat verilerine erişim SEO uzmanları için çok değerlidir.
$top = $searchClient->wordstat()->getTop('fil satın al', [
'regions' => [213] // Moskova
]);
foreach ($top->topPhrases as $phrase) {
echo "- {$phrase['phrase']}: {$phrase['count']} sorgu\n";
}
Sonuç
Kütüphane yandex-search-php, Yandex’in arama teknolojileri ile çalışmak isteyen PHP geliştiricileri için yüksek kaliteli, iyi belgelenmiş ve kullanıcı dostu bir araçtır. Bu SDK, arama motorlarına entegre hale getirilmiş ve web geliştirme süreçlerinizi hızlandıracaktır.
Faydalı Bağlantılar
Kaynak: Orijinal Makale


