0Pricing
PHP Academy · Ders

Gates: Basit Yetkilendirme Denetimleri

Kullanıcı eylemlerine ilişkin izin mantığı için geçitler tanımlayın ve değerlendirin.

Gates: Basit Yetkilendirme Denetimleri, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.

Geçitler Nedir

Laravel geçitleri, bir kullanıcının belirli bir eylemi gerçekleştirme yetkisine sahip olup olmadığını belirleyen kapanışlardır. Belirli bir modele bağlı olmayan, basit ve genel yetkilendirme denetimleridir.

Geçit Tanımlama

Geçitleri App\Providers\AppServiceProvider içinde veya Gate cephe sınıfını kullanarak özel bir AuthServiceProvider içinde tanımlayın.

<?php
use Illuminate\Support\Facades\Gate;

// In a service provider's boot() method:
Gate::define("delete-post", function (User $user, Post $post) {
    return $user->id === $post->user_id;
});

Geçidi Denetleme (izin verir/reddeder)

Geçit sonuçlarını Gate::allows() veya Gate::denies() ile denetleyin.

<?php
if (Gate::allows("delete-post", $post)) {
    $post->delete();
}

if (Gate::denies("delete-post", $post)) {
    abort(403);
}

Denetleyicilerde authorize()

Bir denetleyicinin içinde $this->authorize() çağırın; başarısızlık durumunda otomatik olarak AuthorizationException (403) fırlatır.

<?php
public function destroy(Post $post): RedirectResponse
{
    $this->authorize("delete-post", $post);
    $post->delete();
    return redirect()->route("posts.index");
}

Blade'de @can

Geçit denetimlerine göre kullanıcı arayüzünü koşullu olarak göstermek için @can yönergesini kullanın.

@can('delete-post', $post)
    <form method="POST" action="/posts/{{ $post->id }}">
        @csrf @method('DELETE')
        <button>Delete</button>
    </form>
@endcan

Gate::before

before geri çağrısı, diğer tüm geçit denetimlerinden önce çalışır; yöneticilere sınırsız erişim vermek için kullanışlıdır.

<?php
Gate::before(function (User $user, string $ability) {
    if ($user->isAdmin()) return true; // skip further checks
});

Gate::after

after, tüm geçit denetimlerinden sonra çalışır. Null olmayan bir dönüş değeri, geçit sonucunu geçersiz kılar.

Yanıt Döndürme

Geçitler, özel hata iletileri için bir Response nesnesi döndürebilir.

<?php
Gate::define("publish-post", function (User $user, Post $post) {
    return $user->isEditor()
        ? Response::allow()
        : Response::deny("You must be an editor to publish.");
});

forUser()

Bir geçidi farklı bir kullanıcı için denetleyin (kimliği doğrulanmış kullanıcı için değil).

<?php
if (Gate::forUser($otherUser)->allows("delete-post", $post)) {
    // ...
}

Konuk Kullanıcılar

Varsayılan olarak geçitler, kimliği doğrulanmamış kullanıcılar için otomatik olarak false döndürür. Konuk denetimlerine izin vermek için kullanıcıyı null olabilir türde belirtin.

<?php
Gate::define("view-post", function (?User $user, Post $post) {
    return $post->is_published || $user?->id === $post->user_id;
});

Geçitler ve Politikalar

Geçitler, anlık denetimler için kullanılan basit kapanışlardır. Politikalar, model tabanlı yetkilendirme için kullanılan sınıflardır; aynı model üzerinde birden fazla eyleminiz varsa politikaları kullanın.

Özet

Geçitler, genel yetkilendirme kapanışlarıdır. Bunları bir hizmet sağlayıcıda tanımlayın. Blade içinde Gate::allows(), $this->authorize() veya @can ile denetleyin.

Hızlı Kontrol

Geçit başarısız olduğunda hangi denetleyici yöntemi otomatik olarak 403 fırlatır?

Sıkça Sorulan Sorular

“Gates: Basit Yetkilendirme Denetimleri” dersi ücretsiz mi?

Evet — “Gates: Basit Yetkilendirme Denetimleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.

“Gates: Basit Yetkilendirme Denetimleri” dersinde ne öğreneceğim?

Kullanıcı eylemlerine ilişkin izin mantığı için geçitler tanımlayın ve değerlendirin. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

PHP Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Gates: Basit Yetkilendirme Denetimleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Laravel Breeze ile Kimlik Doğrulama
  2. Rotaları Ara Yazılımla Koruma
  3. Gates: Basit Yetkilendirme Denetimleri
  4. Policy'ler: Model Tabanlı Yetkilendirme
← PHP Academy Sayfasına Dön