Mevcut PHP uygulama için basit bir ORM veya DBal Need

0 Cevap php

Varolan bir PHP uygulamasının uzatılması üzerinde çalışıyorum. Ne yazık ki benim için, mevcut uygulama bir karmaşa. Çiğ mysql_ * çağrıları ile tüm spagetti kod. Inilti. Ben uzanan am yerlerinde bunu gidiyorum yolu yok.

Yani, ben kolayca düşmesi ve kullanmaya başlayabilirsiniz DBal basit bir ORM arıyorum. İstenilen özellikler:

  • Varolan bir veritabanı şeması üzerinde çalışmak gerekir. Tercihen minimal veya hiçbir ek yapılandırma ile. Varolan veritabanı şeması mevcut PHP kodu (vb, hiçbir mantıklı adlandırma kuralları, normalize değil) gibi aynı kalitede olduğunu. Ben açıklamalı nesne özellikleri manuel olarak a la Doctrine 2 veritabanı şemasını dönüştürme gün geçirmek istemiyorum.
  • Bu, mevcut ham mysql_ * sorguları yanında çalışmak gerekir. Ben komut elle arkalarından veritabanındaki verileri manipüle zaman Doktrini 2 veya uskur gibi nemlendirici Orms nasıl davranması hiçbir fikrim yok, ama güzel değil varsayalım.
  • PHP 5.2.x. çalıştırılmalıdır I love PHP 5.3 kullanmak istiyorum ama emin PHP 5.3 üzerinde çalışır hale getirmek spagetti kod karışıklık mevcut 125k hatları üzerinden gidiyor sıfır faiz var.
  • İlişkiler gerekli değildir. Ben ilişkisel veri almak için gereken birkaç yerde, ben ekstra bir find() veya query() veya ne olursa olsun kendimi aramak için mutluluk duyarız.
  • Bonus puanları bazı tetik desteği varsa (örneğin, beforeSave, afterSave). Değil bir gereklilik, ama olması güzel.

Edit: Birisi benim sefalet beni. Ben sadece spagetti kod 125k hatları da veritabanı şemasını değiştirir öğrendim. Örneğin, bir yerde ekstra bir seçenek eklemek ve ALTER TABLE tabloların bir bütün takım uçan başlar. Ben muhtemelen bu kod temeli ile TheDailyWTF bir yıl yetmeyecek doldurabilir. Yani, bir daha gereksinimi:

  • (Örneğin, ekleme sütunlar) otomatik olarak değişen bir veritabanı şeması ile başa çıkmak gerekir.

Ben bir kaç çözüm arıyoruz olmuştur, ama ben gereksinimleri göz önüne alındığında işe ne kadar iyi emin değilim. Doktrin 2, RedBeanPhp ve benzeri tüm PHP 5.3 gerektirir, bu yüzden dışarı vardır. Orada PHP 5.2.x için RedBeanPhp bir miras versiyonu ama dağınık, mevcut veritabanı şeması ile çalışmak olsaydı bilmiyorum. NotORM veri alma için iyi görünüyor ama mevcut veritabanı şeması için konfigüre edilebilir olmadığını bilmiyorum, ve nasıl kolayca veritabanına verileri geri koyabilirsiniz.

İdeal basit bir şey istiyorum. Örn:

$user = User::find($id);
$user->name = 'John Woo';
$user->save();

Veya:

$articles = ORM::find('article')->where('date' => '2010-01-01');
foreach ($articles as $article) {
    echo $article->name;
}

Herhangi bir ipucu ya da alternatif çözümler bekliyoruz!

0 Cevap