Doktrin ORM ile deneyiminiz nedir?

7 Cevap php

What's your experience with doctrine? I've never been much of an ORM kind of guy, I mostlymanaged with just some basic db abstraction layer like adodb.

Ama ben bunun tüm kavram ve Faydaları anladım. O bir ORM gerekli boyunca bir proje geldiğinde yüzden ben ORM çerçeve bir deneyin vermek düşündüm.

Ben Phing gereksinimi işlemek istemiyordu çünkü ben doktrin seçim doktrin arasında karar ve itmek ettik.

Ben yanlış yaptım bilmiyorum. Ben sağ zihniyet ile geldi. Ve ben hiçbir şekilde bir 'genç' php kiddie duyuyorum. Ama sistem her adımda mücadele ettik. Orada pek çok döküman var ama hepsi biraz disorganize hissediyor. Ve YAML gibi basit şeyler sadece olmazdı tablo oluşturma db, t iş ve hatta bir hata ya da bir şey olmadan sadece bork. Diğer şeyler bir sürü biraz korkak çalışmadan önce verdiği sadece bu ekstra bit gerektirir çalışır.

Belki ne olduğunu öğrendim bir kez aha anı olacak burada aptal acemi varsayımı bazı yumuşak yaptı. Ama şimdi tamamen sistemini nefret ediyorum.

Orada belki bazı ipuçları herkes verebilir ya da belki bu konuda konu veya bazı yetkili site / kişi üzerinde iyi bir kaynak bana gelin mi? Ya da belki sadece sadece "çalışan" başka bir ORM çerçeve tavsiye?

7 Cevap

Ben karışık duygular var. Ben bunu doğrulamak için çok kolay çünkü sadece SQL bir usta değilim. Eğer sonuç doğru almak kadar hızlı SELECT deyimlerini test edebilirsiniz. Ve Refactor bir çırpıda.

Doctorine, veya herhangi bir ORM, neredeyse OKB (Obsesif / kompulsif) görünüyor soyutlama pek çok katmanı vardır. Ben Doktrini denedim hangi benim son projede, birkaç duvarlara çarptı. O ben birkaç dakika içinde SQL yazılmış olabilir biliyordu şey için bir çözüm anlamaya gün sürdü. Soooo sinir bozucu olduğunu.

Ben huysuz oluyorum. SQL için topluluk huge. Doktrin için toplum / support ufacık. Emin kaynağına bakmak ve onu anlamaya çalışın ... ve bu anlamaya gün sürebilir konular olabilir.

Bottom line: kendi grokking için zaman bir sürü planlama olmadan, Doktrini, ya da herhangi bir ORM denemek yok.

biz daha 1 yıl, 2 yıl ve Symfony ile Öğretiler Symfony ile Propel kullanarak edilmiştir. MVC framework ile ORM geçmeden yaptığımız iyi bir adım olduğunu söyleyebiliriz. Onunla nasıl çalışılacağını öğrenmek için biraz zaman alır satışlardaki Doktrin ile yapışmasını öneriyoruz. Sonunda size kodu daha okunabilir ve esnek bulacaksınız.

Eğer başlamak için bazı yer arıyorsanız, ben Symfony Jobeet öğretici http://www.symfony-project.org/jobeet/1_4/Doctrine/en/ (bölüm 3, 6 temellerini kapsar) ve ders Doktrin belgelerin öneriyoruz.

Sanırım süredir Doktrini kullanıyorum yukarıda yazdığım gibi. Biz hiç btw kötü değil, bir grafik kullanıcı arayüzü DB modeli tanımlayabilirsiniz bir araç olarak adlandırılan ORM Designer (www.orm-designer.com) (artık YAML dosya :-), geliştirdiğimiz iş daha rahat hale getirmek için .) Ayrıca orada bazı yararlı öğreticiler bulabilirsiniz.

Itmek ve Doktrin PDO'yu kullanır. PDO Oracle Veritabanı ile açık bir sürü hata var. Bunların hepsi CLOB alanları ile ilgilidir. Eğer Oracle ile çalışıyorsanız, yeni bir projeye başlamadan önce bunu göz önünde bulundurun lütfen. Böcek yıl önce bu yana açıktır. Doktrin ve PDO Oracle ve CLOBs ile çalışan kilitlenmesine

Ben korgi önceden varolan veritabanları çalışmak zorunda orta büyüklükte bir projede Doctrine kullanıyorum. Size özellikleri yerleşik bir sürü verir, ama ben bir büyük şikayet var.

Ben veritabanları ve tersi değil benim modelleri üretmek zorunda olduğu için, benim modelleri veritabanına çok yakın: alanları temel sql (ne olduğunu sorgulamak zorunda nesneleri almak için, veritabanı sütunları çok benzer isimler var burada Ben bu kodu koymak, ve onu nasıl test edebilirim?), vb yok

Sonunda ben sadece eski dao / model yaklaşımı kullanmak ve resmin dışında doktrinini bırakmak kolay olmazdı eğer bana soru yapar doktrin için bir kompleks sarıcı yazmak zorunda kaldım. Jüri bu konuda hala. İyi şanslar!

Deneyimlerimi sizinkine benzer ses. Ben sadece doktrinini kullanarak başladım ve Propel hiç kullanmamış. Ancak ben çok Doktrini disapointed duyuyorum. It belgelerine korkunç. Kötü organize ve oldukça eksik.

PHP için çeşitli ORM kütüphaneleri biraz araştırmadan sonra, PHP ActiveRecord verdi. Benim kararım az-hayır yapılandırması, kütüphane hafif doğa ve kod nesil eksikliği aşağı geldi. Doktrin sadece ne ihtiyacım için çok güçlü; ActiveRecord yapmaz ne PHP benim sarıcı katmanda uygulayabilirsiniz. Ben bir an alarak ve gereksinimleri bir ORM ne inceleyerek önermek ve PHP ActiveRecord gibi basit bir ya bir ev-haddelenmiş etkin kayıt uygulaması daha iyi olurdu eğer ya ne gerek teklifi olmadığını görecekti.

Doktrin ile bir uzman değilim - sadece kendim kullanmaya başladım ve ben karma bir deneyim biraz itiraf etmeliyim. Bu sizin için çok şey yapar, ama şu ya da bu yapmak için bunu söylemek için nasıl her zaman hemen belli değil.

Çok-çok ilişkisi php modeli tanımı içine doğru tercüme etmedi otomatik ilişki keşif ile YAML dosyaları kullanmaya çalışırken Örneğin. Bunun gibi çok-çok tüm tedavi etmedi, çünkü hiç hata, söz gibi.

Ben muhtemelen bu kafanı almak için zaman ya da şeyler ve nasıl elemanlarının birlikte etkileşim yapmanın bu şekilde gerektiğini söyleyebilirim. Ve bir anda şeyleri bir adım yapmak için zaman sahip iyi bir şey olabilir ve izolasyon tür bir seferde konular biri ile anlaşma olacaktır. Bir kerede çok fazla yapmaya çalışıyor zor olabilir ve aslında bir yerde bir şeyler yanlış gidiyor bulmanızı zorlaştırabilir.