bayrameker / laravelseo
Requires
- php: ^8.0
- illuminate/support: ^8.24|^9.0
- imliam/laravel-blade-helper: ^1.4
Requires (Dev)
- intervention/image: ^2.7
- nunomaduro/larastan: ^1.0
- orchestra/testbench: ^6.23|^7.0
- pestphp/pest: ^1.2
- pestphp/pest-plugin-laravel: ^1.0
This package is not auto-updated.
Last update: 2025-03-31 04:44:29 UTC
README
Özellikler:
- PHP'den SEO etiketleri ayarlama
- Blade'den SEO etiketlerini ayarlama
- Otomatik olarak kapak resimleri oluşturmak için Flipp ile entegrasyon
- Özel uzantı desteği
- Etkileyici ve basit API
- Özelleştirilebilir görünümler
Örnek Kullanım:
seo() ->title($post->title) ->description($post->excerpt) ->twitter() ->flipp('blog')
Kurulum
composer require bayrameker/laravelseo
Blade dosyanızın <head>
etiketine aşağıdaki satırı ekleyin:
<x-seo::meta />
Kullanım
Paket herhangi bir PHP kodundan veya özellikle @seo
yönergesi kullanılarak Blade'den kullanılabilir.
PHP
Aşağıdaki yöntemleri çağırabileceğiniz SeoManager örneğini almak için seo()
yardımcısını kullanın:
Mevcut yöntemler:
site(string $site) url(string $url) title(string $title) description(string $description) image(string $url) twitterCreator(string $username) twitterSite(string $username) twitterTitle(string $title) twitterDescription(string $description) twitterImage(string $url)
Örnek Kullanım:
seo()->title('foo')->description('bar')
Blade Dosyası
Yöntemleri Blade'den çağırmak için @seo
yönergesini kullanabilirsiniz:
@seo('title') // title değerini kullan
@seo('title', 'foo') // title değer tanımla ve kullan
@seo(['title' => 'foo']) // Başlığı önceden tanımla
seo()->twitter();
seo()->twitterTitle('About us')
Favicon
Varsayılan olarak, hiçbir favicon bağlantısı eklenmez. Kendiniz şu şekilde kullanmalısınız :
seo()->favicon();
Favicon Oluştur
favicon oluşturma kodu :
php artisan seo:generate-favicons public/path-to/logo.png
Artisan konsolundan herhangi bir yol argümanı verilmezse, 'public/assets/logo.png' konumuna geri döneriz.
32x32 piksellik bir "public/favicon.ico" & "public/favicon.png" simgesi oluşturacağız. Çoğu durumda bu yeterli olacaktır.
Lütfen imagick php uzantısını ve intervention/image yüklemeniz gerektiğini unutmayın.
Varsayılanlar
Varsayılan değerleri yapılandırmak için, yöntemleri "default" bağımsız değişkenle çağırın:
seo() ->title(default: 'Bayram Eker — Kişisel Website') ->description(default: 'Biz yazılım geliştiricisiyiz ...');
Ekstra Taglar
Daha fazla etiket eklemek için "tag()" ve "rawTag()" yöntemlerini kullanabilirsiniz:
seo()->tag('fb:image', asset('foo')); seo()->rawTag('<meta property="fb:url" content="bar" />'); seo()->rawTag('fb_url', '<meta property="fb:url" content="bar" />');
Standart URL
"og:url" ve kurallı URL "bağlantı" etiketlerini etkinleştirmek için şunu arayın:
seo()->withUrl();
Bu, paketin request()->url()
(sorgu dizesi olmadan geçerli URL) öğesinden okunmasını sağlar.
URL'yi değiştirmek isterseniz, seo()->url()
kullanın:
seo()->url(route('products.show', $this->product));
Değer Değiştirme
Şablona eklenmeden önce belirli değerleri değiştirmek isteyebilirsiniz. Örneğin, <title>
meta sonuna | ile ek başlık eklemek isteyebilirsiniz.
Bunu yapmak için, aşağıdaki gibi yöntem çağrılarına 'modify' argümanını eklemeniz yeterlidir:
seo()->title(modify: fn (string $title) => $title . ' | Bayram Eker');
You can, of course, combine these with the defaults:
seo()->title( default: 'BayramEker — Web Geliştirici', modify: fn (string $title) => $title . ' | Laravel Developer' );
Flipp entegrasyonu
İlk olarak, Flipp API anahtarlarınızı eklemeniz gerekir:
-
API anahtarınızı "FLIPP_KEY" ortam değişkenine ekleyin. Anahtarı [buradan]->(https://useflipp.com/settings/profile/api) alabilirsiniz..
-
config/services.php
gidin ve bunu ekleyin:'flipp' => [ 'key' => env('FLIPP_KEY'), ],
Şablonları AppServiceProvider
içerisine ekleyin:
seo()->flipp('blog', 'v8ywdwho3bso'); seo()->flipp('page', 'egssigeabtm7');
Bundan sonra, aşağıdaki gibi seo()->flipp()
çağırarak şablonları kullanabilirsiniz:
seo()->flipp('blog', ['title' => 'Foo', 'content' => 'bar'])`
Hiçbir veri sağlanmazsa, yöntem mevcut SEO yapılandırmasındaki "başlık" ve "açıklama"yı kullanır:
seo()->title($post->title); seo()->description($post->excerpt); seo()->flipp('blog');
'flipp()' yöntemi ayrıca, blog kapak resimleri gibi başka yerlerde kullanmanıza izin veren, resme endeksli bir URL döndürür.
<img alt="@seo('title')" src="@seo('flipp', 'blog')">
Örnekler
Service Provider
Services Provider boot()
yöntemindeki varsayılan yapılandırma:
seo() ->site('Bayram Eker — Laravel Developer') ->title( default: 'BayramEker — Biz yazılım geliştiricisiyiz', modify: fn (string $title) => $title . ' | Laravel Developer' ) ->description(default: 'yazılım geliştiricisiyiz ...') ->image(default: fn () => asset('header.png')) ->flipp('blog', 'o1vhcg5npgfu') ->twitterSite('archtechx');
Controller
Controller SEO meta verilerini yapılandırma örneği.
public function show(Post $post) { seo() ->title($post->title) ->description(Str::limit($post->content, 50)) ->flipp('blog', ['title' => $page->title, 'content' => $page->excerpt]); return view('blog.show', compact($post)); }
View
Bu örnek, View'e iletilen değerleri kullanarak genel SEO yapılandırmasını ayarlayan bir Blade View kullanır.
@seo(['title' => $page->name]) @seo(['description' => $page->excerpt]) @seo(['flipp' => 'content']) <h1>{{ $page->title }}</h1> <p>{{ $page->excerpt }}</p> <p class="prose"> {{ $page->body }} </p>
Özelleştirme
Bu paket tamamen açıktır ve görünümleri değiştirilerek (mevcut şablonları değiştirmek için) veya bir uzantı geliştirerek (daha fazla şablon eklemek için) özelleştirilebilir.
Görüntüleme
php artisan satıcısı:yayın --tag=seo-views
komutunu çalıştırarak Blade View'lerini yayınlayabilirsiniz.
Uzantılar
Özel bir uzantı kullanmak için, istenen meta etiketlerle bir Blade component oluşturun. Component, {{ seo()->get('foo') }}
veya @seo('foo')
kullanarak verileri okumalıdır.
Örneğin:
<meta name="facebook-title" content="@seo('facebook.foo')">
View oluşturulduktan sonra uzantıyı kaydedin:
seo()->extension('facebook', view: 'my-component'); // <x-my-component>
Bir uzantı için veri ayarlamak için (bizim durumumuzda facebook
), çağrıları camelCase'de uzantı adıyla önekleyin veya ->set()
yöntemini kullanın:
seo()->facebookFoo('bar'); seo()->facebookTitle('Hakkımızda'); seo()->set('facebook.description', 'Biz bir web geliştirme ...'); seo(['facebook.description' => 'Biz bir web geliştirme ...']);
Bir uzantıyı devre dışı bırakmak için, "extension()" çağrısındaki ikinci argümanı false olarak ayarlayın:
seo()->uzantı('facebook', false);
Gelişim
Tüm kontrolleri yerel olarak çalıştırın:
./check
Kod stili, php-cs-fixer tarafından otomatik olarak düzeltilecektir.