0Pricing
PHP Academy · Ders

Arayüzleri Uygulama

interface ile sözleşmeler tanımlayın ve bunları birden fazla sınıfta uygulayın.

Arayüzleri Uygulama, 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.

Giriş: PHP Arayüzleri

Bir arayüz bir sözleşme tanımlar: uygulayan sınıfların sağlaması gereken yöntem imzalarının bir listesidir. Soyut sınıfların aksine, bir sınıf birden fazla arayüz uygulayabilir.

Temel Kavramlar

Temel kavramlar:

  • interface Name {} ile bildirilir
  • Yöntemlerin yalnızca imzaları vardır; gövdeleri yoktur
  • implements InterfaceName ile uygulanır
  • Bir sınıf birden fazla arayüz uygulayabilir

Arayüz Tanımlama

Örnek:

<?php
interface Serializable {
    public function serialize(): string;
    public function unserialize(string $data): void;
}

interface Loggable {
    public function toLog(): string;
}

// Implementing both interfaces:
class Event implements Serializable, Loggable {
    public function __construct(private string $type, private string $data) {}
    public function serialize(): string { return json_encode(['type'=>$this->type,'data'=>$this->data]); }
    public function unserialize(string $d): void { $a = json_decode($d,true); $this->type=$a['type']; $this->data=$a['data']; }
    public function toLog(): string { return "[{$this->type}] {$this->data}"; }
}

Tür Olarak Arayüz

Devam:

<?php
interface Cache {
    public function get(string $key): mixed;
    public function set(string $key, mixed $val, int $ttl = 0): void;
    public function delete(string $key): void;
}

// Function accepts any Cache implementation:
function loadUser(int $id, Cache $cache): array {
    $key = "user:$id";
    $user = $cache->get($key);
    if (!$user) {
        $user = fetchFromDb($id);
        $cache->set($key, $user, 3600);
    }
    return $user;
}

Arayüz Sabitleri

Daha derinlemesine:

<?php
interface HttpMethods {
    const GET    = 'GET';
    const POST   = 'POST';
    const PUT    = 'PUT';
    const DELETE = 'DELETE';
}

class Router implements HttpMethods {
    public function addRoute(string $method, string $path, callable $handler): void {
        // ...
    }
}

$router = new Router();
$router->addRoute(HttpMethods::GET, '/users', fn() => []);

Arayüzü Genişleten Arayüz

Pratik kullanım:

<?php
interface Readable {
    public function read(): string;
}

interface Writable {
    public function write(string $data): void;
}

// Interface can extend multiple interfaces:
interface ReadWrite extends Readable, Writable {
    public function seek(int $position): void;
}

class FileStream implements ReadWrite {
    public function read(): string    { return ''; }
    public function write(string $d): void { }
    public function seek(int $p): void { }
}

Arayüzlerle Bağımlılık Enjeksiyonu

İleri düzey:

<?php
interface MailerInterface {
    public function send(string $to, string $subject, string $body): bool;
}

class SmtpMailer implements MailerInterface {
    public function send(string $to, string $subject, string $body): bool {
        // real SMTP send
        return true;
    }
}

class UserService {
    public function __construct(private MailerInterface $mailer) {}

    public function register(string $email): void {
        // save user...
        $this->mailer->send($email, 'Welcome!', 'Thanks for joining.');
    }
}

Desen

Yaygın PHP Arayüzleri desenleri, tekrarlanan tasarım sorunlarını temiz biçimde çözmek için kullanılır. Okunabilir ve bakımı kolay kod için bu desenleri tutarlı biçimde uygulayın.

Ne Zaman Kullanılmalı

PHP Arayüzlerini ne zaman uygulayacağınızı bilmek, nasıl uygulanacağını bilmek kadar önemlidir. Gereğinden fazla kullanım karmaşıklığa, yetersiz kullanım ise kod tekrarına yol açar.

Gerçek Dünya Örneği

Gerçek uygulamalarda PHP Arayüzlerine çerçevelerde, ORM'lerde ve hizmet katmanlarında sıkça rastlanır. Bu konuyu anlamanız, profesyonel PHP projelerine katkıda bulunmaya hazırlanmanızı sağlar.

Yaygın Hatalar

PHP Arayüzleriyle ilgili şu hatalardan kaçının:

  • Sınıflar birden fazla arayüz uygulayabilir, ancak yalnızca bir sınıfı genişletebilir
  • Arayüzlerde özellik veya yöntem gövdesi bulunamaz (PHP 8'deki varsayılanlar dışında)
  • Her zaman bir uygulamaya değil, bir arayüze (soyut türe) göre programlayın
  • Testlerde bağımlılık enjeksiyonunu ve taklit nesneleri mümkün kılmak için arayüzleri kullanın

Hızlı Kontrol

Bir PHP sınıfı aynı anda kaç arayüz uygulayabilir?

Tekrar: PHP Arayüzleri

Özet:

  • Sınıflar birden fazla arayüz uygulayabilir, ancak yalnızca bir sınıfı genişletebilir
  • Arayüzlerde özellik veya yöntem gövdesi bulunamaz (PHP 8'deki varsayılanlar dışında)
  • Her zaman bir uygulamaya değil, bir arayüze (soyut türe) göre programlayın
  • Testlerde bağımlılık enjeksiyonunu ve taklit nesneleri mümkün kılmak için arayüzleri kullanın

Sıkça Sorulan Sorular

“Arayüzleri Uygulama” dersi ücretsiz mi?

Evet — “Arayüzleri Uygulama” 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.

“Arayüzleri Uygulama” dersinde ne öğreneceğim?

interface ile sözleşmeler tanımlayın ve bunları birden fazla sınıfta uygulayın. 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.

“Arayüzleri Uygulama” 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. Kalıtımla Sınıfları Genişletme
  2. Soyut Sınıflar ve Metotlar
  3. Arayüzleri Uygulama
  4. Kod Yeniden Kullanımı için Trait'ler
← PHP Academy Sayfasına Dön