Kod çoğaltılması olmadan web sunucusuna appserver Nesneleri dizgeleştirir Yöntem

1 Cevap php

Ben bir web uygulaması veritabanı 3 katmanlı sunucusu kurulum var. Web uygulaması verileri ister ve uygulaması daha sonra db işlemleri, verilerini alır ve ekran için web döndürür. Standart.

Şu anda web app seri tüm veriler web tarafı, daha sonra görüntülemek için ayrıştırır özel tanımlı veri yapılar içine koymak alır. Diğer bir deyişle, ben almak ve web göndermek istediğiniz bir düzen var demek. Ben bütün nesne seri, daha ziyade uygulama sunucusuna, sonra web sunucuları üzerinden bu diziyi seri ise uygun veri elemanları ile bir dizi inşa etmiyoruz.

Şimdi, web sunucusu üzerinden tüm sipariş nesne seri hale içine arıyorum.

Appserver ve web sunucusu kod ayrımı korurken siz nesneleri seri hale getirmek için bulduk en iyi yöntemi nedir? Benim websunucu DB erişen herhangi bir kod sahip istemiyorum, ama onları mümkün olduğunca benim sipariş ve diğer veri kadar saklanması sınıfları yeniden istiyoruz.

Ayrıca soruma (Glenn yanıtı sayesinde) geliştirmek için, benim webserverlarda iş mantığı herhangi etrafında sadece appserver bilmelidir ki, ya sipariş sınıfı söylemek zorunda istemiyorum. Nesneleri zaten veritabanından için ayrı / serileştirme kullanmak, ve / webserverlarda gelen.

Sipariş örneği kullanarak, appserver üzerinde, bir sipariş iptal gerekir: ie

$ Sipariş> iptal ();

ama web sunucusu üzerinde bu yöntem bile bulunan olmamalıdır. Yöntemini iptal appserver sırasına Bu sadece vekil olmamalı back (doğrudan), kullanıcı eylem istekleri uygulamanın yetki ve tabakasını kontrol izinleri akmaya gerekir çünkü.

Peki nasıl hayır kod çoğaltılması az benim appserver nesnenin yöntemleri ve özellikleri, bazı (hepsi değil) var benim webserver sipariş nesne olsun. Ben düşünüyordum bir şey özellikleri ve yöntemleri sınırlı bir dizi ile bir temel sınıf yaratmak için olduğunu. Onun özelliklerini tutmak için bir iç sınıf kullanmak istiyorsunuz, ve ben ve alıcılar ve belirleyiciler dışarı geçmek için tüm veri erişimi gerektirir. Bunlar da iç sınıfında alıcı ve ayarlayıcıları çağırır.

Web ve uygulama sunucuları daha sonra bağımsız olarak temel sınıf genişletmek ve özelliklerini koruyacak şekilde özel bir iç sınıf kullanabilirsiniz. Daha sonra, örneğin uygulama tarafında, iç sınıf DB veri sürebilen bir ORM sınıf genişleme olabilir ve web tarafında iç sınıf basit özellikleri tutucu sınıf olabilir.

Ama bütün içsel sınıf şey biraz aksak görünüyor, bu yüzden hala daha iyi çözümler arıyorum.

1 Cevap

Sorunuzu doğru anlamak, sizin nesnelerin verilerini seri hale getirmek istiyorum, ama onlar rehidrasyona zaman, onlar (sınırlı ve / veya farklı işlevselliği ile) nesne farklı bir türü içine bu kadar olmalı?

Sen ne tercih protokol bağlı olarak, farklı şekillerde yapabilirsiniz. Örneğin, SOAP kullanabilirsiniz. Daha sonra sunucu tarafında daha, istemci tarafında farklı bir sınıfa nesneleri hidrat gerekir. Ayrıca PHP'nin native serialization kullanmak ve ya a) () Örn. sınıf adını değiştirin (kafa karıştırıcı) veya b) dizgeleştirilmiş etrafında biraz alay misiniz istemci farklı bir kod tabanı var olabilir . A crude example PHP kılavuzu yorumlarda bulunabilir.