PHP ile çok katmanlı uygulamalar?

4 Cevap php

Ben PHP için nispeten yeni duyuyorum, ama SOA mimarisi ve çok katmanlı uygulamalar ile karmaşık kurumsal ortamlarda Java programcısı yaşadı. Orada, biz normalde orta kademedeki iş mantığı ile iş uygulamaları uygulamak istiyorum.

Ben konuşlandırılabilir kolay ve bireyler ve topluluklar tarafından özelleştirilebilir olması gereken bir alternatiftir para sistemi, programlama ediyorum; açık kaynak olacaktır. Php / mysql benim için en iyi seçenek gibi görünüyor nedeni budur.

Kullanıcılar hesapları var ve onlar bir denge olsun. Ayrıca, sistem teslim toplam hizmet ve mevcut toplam varlıklara bağlı olarak fiyatları hesaplar.

Bu hesaplamalar bir dizi olur bir satın anlamına gelir; denge ve toplamları güncellenmiş olsun; bu türetilmiş rakamlar, normal bir veritabanına koymak değil bir şey vardır.

Bu güncelleştirmelerin php kod hiçbiri yapılır böylece Yine, ben, db içine tetikler ve saklanan prosedürleri koyarak başvurdu.

Insanlar ne düşünüyorsunuz? Iyi bir yaklaşım mı? Benim deneyim, bu en iyi çözüm değildir, ve bir orta katman uygulamak için beni ister ki bana gösteriyor. Ancak, ben bile bunu bilemeyiz. Öte yandan, ne mağaza procs ile bugüne kadar en uygun gibi geliyor bana.

Benim soru açık yapılan umuyoruz. Tüm yorumlar takdir. Bir "mükemmel" bir çözüm olmayabilir.

4 Cevap

Eğilim bu gün olduğu gibi, uzak DB almak genellikle iyi bir şeydir. Sen daha kolay sürüm kontrolü almak ve sadece tek bir dilde işe almak. Bundan daha fazla, ben saklanan prosedürleri gitmek için zor bir yol olduğunu hissediyorum. Bunun gibi şeyler size ve MySql SP'leri rahat hissediyorum eğer Öte yandan, onlar kötü değil, ama benim duygu her zaman hata ayıklamak zor ve işlemek için zor olduğunuzu olmuştur.

Tetikleyiciler konusunda, ben bu app için gerekli emin değilim. Hesaplamaları tetikleyen olaylar kullanıcı tarafından çağrılan olduğundan, bu işler kullanıcı arada bir "bekleme" sayfa veya başka bir sayfaya yönlendiriliyorsunuz bile, PHP olabilir. Açıkçası, gerçek tetikler sadece DB düzeyinde yapılabilir, ama her ne pahasına olursa bu kaçının ve kullanıcı tarafında tetiklemek için olayı almak için deneyin ... bir PHP komut dosyası her X saniye çalışan bir cini parçacığı kullanabilirsiniz.

Tüm bu ben PHP veri erişim katmanı için benim en sevdiğim çözüm fiş istediğini, söyledi: Doctrine. O mükemmel değil, ama PHP ne olduğunu varlık, yeterince iyi. Ne istediğinizi çoğunu yapar, ve benzeri nesnelerin yerine veritabanı prosedürleri ile çalışan ve tutar.

Kitabınız ile ilgili olarak, birden fazla katlı, PHP, tamamen yapılabilir, ancak bunları yapmak ve onlara saygı var. PHP kodu diğer PHP kod çağırabilir, ve o güzel şimdi OO (5.2 +) ve tüm bu. Eğer etrafta görürsünüz PHP kod bir sürü toplam bok ve hatta, yöntemleri kullanın yalnız katman, izin ve terbiyeli OO modelleme olmadığı gerçeğini görmezden emin olun etmeyin. Kendi yapıyor (veya varolan kullanarak) MVC çözümü de dahil olmak üzere, bunu yapmak istiyorsanız hepsi mümkün.

Yerine, veri soyutlama katmanı DB düzeyine özellikleri çok bastırıyor ile bir sorunu, sen DBMS özellik seti kilitli olsun olmasıdır. Farklı veritabanları (kesinlikle her zaman değil) ile birlikte kullanılabilir, böylece açık kaynak yazılım genellikle yazılır. Bu yolda size postgres'in veya başka bir DBMS noktasına kolay yapmak istiyorum olasıdır. Şimdi MySQL özgü birçok özellik kullanarak bu zor yapacaktır.

DB sunucusu tarafından sağlanan tetikler ve saklanan prosedürler ve diğer özellikleri kullanarak kesinlikle yanlış bir şey yoktur. Bu çalışıyor ve iyi çalışıyor, bunun yerine sadece basit bir veri deposu olarak bunu havale eden, DB tam potansiyelini kullanıyor.

Ancak, ben size (ve bana) aynı fikirde burada her geliştirici için, tam tersini düşünüyorum ve bunu yaparken iyi deneyimler yaşadım kim en azından gibi pek çok vardır eminim.

Teşekkürler çocuklar.

Ben böyle bir işlem bütünlüğünü kontrol etmek daha kolay olacağını düşündüm çünkü db tetikler kullanıyordum. Eğer fark edebileceğiniz gibi, ben de db bilginin tutuş elde etmek için çalışan bir geliştirici değilim.

Şimdi, ben bir çözüm değil, sadece mantıksal, çoklu katmanlar üzerinde php kod yaymak değil, aynı zamanda fiziksel olarak farklı sunucularda dağıtarak orada olduğunu görüyoruz.

O yanlış olmak gelmiyor Ancak, gelişme bu aşamada, ben, benim tetikler / sp çözüm sopa düşünüyorum. Çoklu katmanlar üzerinde dağıtarak sürekli benim app yeniden beni gerektirir.

Ayrıca, birisi alternatif para sistemini seviyor eğer insanlar php kod dokunmak ise hesaplamaları yanlış olsun endişelenmenize gerek olmaz ise, bu insanlar sadece kendi ihtiyaçları için düzenini değiştirmek için daha kolay olabilir, açık kaynak düşünüyordum.

Öte yandan, tabii, ben db şeyler ayıklamak çok zor olsun diye katılıyorum.

Php dosyaları gibi DB başlatma betikleri, kaynak denetimi vardır :)

Tekrar teşekkürler