Yapının Yansıması
Nette Database, Nette\Database\Reflection sınıfı aracılığıyla veritabanı yapılarını incelemek için araçlar sağlar. Bu, tablolar, sütunlar, dizinler ve yabancı anahtarlar hakkında bilgi almanızı sağlar. Yansımayı şema oluşturmak, esnek veritabanı uygulamaları oluşturmak veya genel veritabanı araçları oluşturmak için kullanabilirsiniz.
Yansıma nesnesini bir veritabanı bağlantı örneğinden alabilirsiniz:
Tabloları Alma
Readonly özelliği $reflection->tables
veritabanındaki tüm tabloların ilişkisel bir dizisini sağlar:
İki ek yöntem daha mevcuttur:
Tablo Bilgileri
Bir tablo, aşağıdaki salt okunur özellikleri sağlayan Table nesnesi tarafından temsil edilir:
$name: string
– tablonun adı$view: bool
– bir manzara olup olmadığı$fullName: ?string
– şema da dahil olmak üzere tablonun tam adı (varsa)$columns: array<string, Column>
– tablonun sütunlarının ilişkisel bir dizisi$indexes: Index[]
– tablonun dizinlerinden oluşan bir dizi$primaryKey: ?Index
– tablonun birincil anahtarı veyanull
$foreignKeys: ForeignKey[]
– tablonun yabancı anahtarlarından oluşan bir dizi
Sütunlar
Bir tablonun columns
özelliği, anahtarın sütun adı olduğu ve değerin aşağıdaki özelliklere sahip bir Sütun örneği olduğu bir ilişkisel
sütun dizisi sağlar:
$name: string
– sütunun adı$table: ?Table
– sütunun tablosuna bir referans$nativeType: string
– yerel veritabanı türü$size: ?int
– türün boyutu/uzunluğu$nullable: bool
– sütunun şunları içerip içermeyeceğiNULL
$default: mixed
– sütunun varsayılan değeri$autoIncrement: bool
– sütunun otomatik olarak artırılıp artırılmayacağı$primary: bool
– sütunun birincil anahtarın bir parçası olup olmadığı$vendor: array
– veritabanı sistemine özgü ek meta veriler
İndeksler
Bir tablonun indexes
özelliği, her bir indeksin aşağıdaki özelliklere sahip bir Index örneği olduğu bir indeks dizisi
içerir:
$columns: Column[]
– dizini oluşturan sütunların bir dizisi$unique: bool
– dizinin benzersiz olup olmadığı$primary: bool
– birincil anahtar olup olmadığı$name: ?string
– dizinin adı
Bir tablonun birincil anahtarına primaryKey
özelliği aracılığıyla erişilebilir; bu özellik bir
Index
nesnesi döndürür veya tabloda yoksa null
döndürür.
Yabancı Anahtarlar
Bir tablonun foreignKeys
özelliği, her biri aşağıdaki özelliklere sahip bir ForeignKey örneği olarak temsil edilen
bir dizi yabancı anahtar içerir:
$foreignTable: Table
– başvurulan tablo$localColumns: Column[]
– yerel sütunlardan oluşan bir dizi$foreignColumns: Column[]
– başvurulan sütunların bir dizisi$name: ?string
– yabancı anahtarın adı