Doktrin (PHP) - Doctrine (PHP)

Doktrin
Doctrine logosu white.png
Kararlı sürüm
2.8.2 / 17 Şubat 2021 ; 3 ay önce ( 2021-02-17 )
Depo Bunu Vikiveri'de düzenleyin
Yazılmış PHP
İşletim sistemi Çapraz platform
Tür Nesne-ilişkisel haritalama çerçevesi
Lisans MIT
İnternet sitesi www .doctrine-project .org Bunu Vikiveri'de düzenleyin

Doktrin Projesi (veya Doktrin ) PHP kitaplık bir set öncelikle sağlamaya odaklanmıştır olan kalıcılık hizmetlerini ve ilgili işlevler. Ödül projeleri bir nesne-ilişkisel eşleştirici (ORM) ve üzerine inşa edildiği veritabanı soyutlama katmanıdır .

Doctrine'in temel özelliklerinden biri, SQL'in nesne yönelimli bir diyalektiği olan Doctrine Query Language'de (DQL) veritabanı sorguları yazma seçeneğidir.

İki büyük PHP framework geliştiricileri, Symfony ve Laminas , Doctrine için resmi kutudan çıkar çıkmaz desteğe sahipken, 3. parti Doctrine paketleri Laravel , CodeIgniter ve diğerleri için mevcuttur.

Kullanım gösterimi

Doctrine 2'deki varlıklar, kalıcı özellikler içeren hafif PHP Nesneleridir. Kalıcı bir özellik, varlığın, Doctrine'in Varlık Yöneticisi aracılığıyla veri eşleme yetenekleri tarafından veritabanına kaydedilen ve veritabanından alınan bir örnek değişkenidir - veri eşleyici modelinin bir uygulaması :

 $user = new User();
 $user->name = "john2";
 $user->password = "doe";

 //$entityManager is an instance of Doctrine\ORM\EntityManagerInterface, usually obtained through dependency injection
 $entityManager->persist($user);
 $entityManager->flush();

 echo "The user with id $user->id has been saved.";

Doktrin 1.x , bir sınıfın bir veritabanı tablosuna karşılık geldiği verilerle çalışmak için aktif kayıt modelini takip eder . Örneğin, bir programcı bir veritabanında yeni bir "Kullanıcı" nesnesi oluşturmak isterse, artık SQL sorguları yazmasına gerek kalmaz , bunun yerine aşağıdaki PHP kodunu kullanabilir:

 $user = new User();
 $user->name = "john";
 $user->password = "doe";
 $user->save();
 echo "The user with id $user->id has been saved.";

Özellikleri

Doctrine'nin bir özelliği, bir projeyi başlatmak için gereken düşük seviyeli konfigürasyondur. Doktrin, mevcut bir veritabanından nesne sınıfları oluşturabilir ve programcı daha sonra ilişkileri belirleyebilir ve oluşturulan sınıflara özel işlevler ekleyebilir. Diğer birçok çerçevede görüldüğü gibi, karmaşık XML veritabanı şemaları oluşturmaya veya sürdürmeye gerek yoktur .

Doctrine'in diğer bir önemli özelliği, isteğe bağlı olarak Hibernate'in HQL'sinden esinlenen DQL (Doctrine Query Language) adı verilen bir OO ( nesne yönelimli ) SQL diyalektinde veritabanı sorguları yazabilme yeteneğidir . Alternatif olarak, QueryBuilder sınıfı ( Doctrine 1.x'teki Doctrine_Query), akıcı bir arayüz aracılığıyla sorgular oluşturmaya izin verir . Bu arabirimler, geliştiricilere, esnekliği koruyan ve yine de herhangi bir kod kopyası gerektirmeden veritabanı arka uçlarının değiştirilmesine izin veren güçlü SQL alternatifleri sağlar.

Bununla birlikte, Doctrine birleştirmeleri gerçekleştirdiği ve ilgili nesneleri otomatik olarak getirdiği için sorguları açıkça yazmak her zaman gerekli değildir . Küçük projeler, sorgu yazmadan kolayca inşa edilebilir.

Doctrine'nin diğer önemli özellikleri şunlardır:

  • işle ilgili mantığı yapılandırmak için kancalar (veritabanı giriş ve çıkışını doğrulayabilen veya değiştirebilen yöntemler) ve olay dinleyicileri için destek;
  • sütun toplama kalıtımı (benzer nesneler, belirli bir nesnenin alt türünü belirten bir tür sütunu ile tek bir veritabanı tablosunda depolanabilir - bir sorgu yapıldığında her zaman doğru alt sınıf döndürülür);
  • memcached , SQLite veya APC gibi çeşitli arka uçlardan yararlanan bir önbelleğe alma çerçevesi ;
  • ACID işlemleri;
  • veritabanı geçişleri;
  • genellikle bir çerçevenin birçok PHP dosyasını dahil ederek ortaya çıkan performans düşüşünü önlemek için çerçevedeki birçok PHP dosyasını tek bir dosyada birleştiren bir "derleme" işlevi.

Tarih

Doktrin, zYne- olarak da bilinen Konsta Vesterinen tarafından başlatıldı . Projenin ilk taahhüdü 13 Nisan 2006'da yapıldı. Proje daha olgunlaştıkça, benimsenmeye başlandı. Çok geçmeden topluluk aktifti ve geliştirme, diğerlerinin yanı sıra Google Summer of Code projesinden düzenli katkılar alıyordu .

Doctrine 1.0.0, 1 Eylül 2008'de yayınlandı.

Doctrine 2.0'ın ilk kararlı sürümü, 2008'in başlarında başlayan 2.5 yıllık özel geliştirmenin ardından 22 Aralık 2010'da piyasaya sürüldü.

Etkiler

Doktrin onlarca projeden ve birçok farklı insandan etkilenmiştir. En büyük etkiler Java ORM Hibernate ve Ruby on Rails'den ActiveRecord olmuştur . Bu ORM çözümlerinin her ikisi de Java ve Ruby dillerinde tam özellikli bir çözüm uygulamıştır . Doctrine projesinin amacı, sürekli ziyaretçi akışını sürdürmek zorunda olan yüksek yüklü web siteleri için PHP dili için eşit derecede güçlü bir çözüm oluşturmaktır . Doktrin ORM, bu tür web sitelerinin performansını artırmak için kullanılabilir.

Ayrıca bakınız

Referanslar

Dış bağlantılar