CodeBlanks Logo Icon CodeBlanks

Dosya dahil etme ile kullanma

PHP kursu · Orta seviye · Ders 22/115

Sınıfı ayrı dosyaya taşıyıp include ile başka sayfada kullanırsın.

Sınıfı ayrı dosyaya taşıma

Bir sınıfı her projede tekrar kullanmak istiyorsan onu kendi dosyasına taşımak en iyisidir: Collection.php. Böylece sınıf tanımı kullanıldığı yerden ayrılır, kod düzenli kalır.

Bu derste sınıf kodunu bir değişkene yükleyip file_put_contents ile dosyaya yazacaksın, sonra require_once ile dahil edip kullanacaksın. Bu, gerçek projelerde sınıf dosyasını elle oluşturmana karşılık gelir.

__DIR__ ile güvenli yol

Bir dosyayı dahil ederken göreli yol yazmak risklidir; betik farklı dizinden çalışınca yol bozulur. __DIR__ sihirli sabiti, dosyanın bulunduğu dizinin mutlak yolunu verir.

__DIR__ . "/Collection.php" yazdığında yol, hangi dizinden çalıştırırsan çalıştır her zaman doğru kalır. Sınıfı yazmak için file_put_contents, okumak için require_once kullanırsın.

Uygulama Sınıfı dosyaya yaz ve require_once ile kullan

$classFile = __DIR__ . "/Collection.php"; ile dosya yolunu kur. file_put_contents($classFile, $classCode); ile sınıf kodunu dosyaya yaz. require_once $classFile; ile dahil et. Sonra $c = new Collection(["elma"]); ile başla, $c->add("armut")->add("kiraz"); ile zincirle ve echo count($c->items); ile sayıyı yazdır.

Örnek çözümü göster
$classFile = __DIR__ . "/Collection.php"; ata. file_put_contents($classFile, $classCode); yaz. require_once $classFile; ekle. new Collection(["elma"]) ile başla, $c->add("armut")->add("kiraz"); ile zincirle.
Örnek çözüm:
<?php
// Collection sınıfını ayrı dosyaya yaz, require_once ile dahil et
$classCode = '<?php
class Collection {
    public array $items = [];
    public function __construct(array $initial = []) {
        $this->items = $initial;
    }
    public function add(string $item) {
        $this->items[] = $item;
        return $this;
    }
}';

$classFile = __DIR__ . "/Collection.php";
file_put_contents($classFile, $classCode);
require_once $classFile;

$c = new Collection(["elma"]);
$c->add("armut")->add("kiraz");
echo count($c->items);

Kendini test et

  1. Sınıf dosyasını güvenle dahil etmek için en uygun deyim?

    • include
    • include_once
    • require
    • require_once
    Cevabı göster

    require_once — Doğru. require_once sınıf dosyasını bir kez dahil eder; dosya yoksa ölümcül hata verir, çift tanımı da engeller.

  2. require_once ile Collection.php'yi dahil et

    require_once ____;
    Cevabı göster
    require_once __DIR__ . "/Collection.php";
  3. Dosya dahil etme kavramlarını eşleştir

    require_once
    Bir kez dahil, yoksa ölümcül hata
    require
    Her seferde dahil, yoksa ölümcül hata
    include
    Uyarı verir, betik devam eder
    __DIR__
    Dosyanın bulunduğu dizin

Orta seviye bölümündeki tüm dersler