PHP uygulaması için Object Oriented tasarım

5 Cevap php

Bizim okul projesi için, bir PHP uygulama mimarisini anlatan bir tasarım belgeyi tanımlamak için görevli vardır.

Biz te belgeye dahil ne karar ücretsizdir.

Bizim profesör, (UML) diyagramları sürü önerdi.

O da sınıf diyagramlarını dikkate almak istedi, ama özenle, PHP gibi tam odaklı nesne değildir.

Benim soru: Bir Domain Driven Nesne bir PHP uygulaması için uygun Tasarım Odaklı mı? PHP OO yaparken neleri dikkate için? Yanlısı ve con nelerdir? PHP ve PHP en iyi uygulamaları OO üzerinde herhangi bir yararlı kaynaklar?

5 Cevap

Bu uygulama yapmak gerekiyordu ne olduğunu bilmeden herhangi bir uygulama mimarisini tanımlamak oldukça zordur IMHO. Herhangi bir karmaşıklık (Aksi PHP veya) Tüm uygulamalar farklı görünüyor.

İkincisi, PHP5 size sınıfları / nesneleri ve OO gubbings her zamanki bolluk verir - bu yüzden sanırım yanıltıcı 'tam odaklı nesne değil' olarak tanımlamak için. Ne demek Eğer dışarı evet o nesnelere sınırlı olması ile bir usul yaklaşım alabilir, ama her şeyi bir nesne olmak istedim eğer o sizin seçiminiz.

DDD PHP için uygulanabilir mi? Evet, tabii ki. Mimariye Belirli bir yaklaşım teknolojisine genellikle bağımlı değildir. En iyi uygulamalar, OO tasarım artılarını / eksilerini çoğu dil için geçerli - PHP kodunuzu yapısı nasıl karar vermeniz oldukça özgür bırakır.

Sen Best Practices PHP sitesinden yararlı konuşmak ;) bu bulabilirsiniz

Most OO languages currently in use are not fully object-oriented. Every language has idiosyncrasies and gotchas. So I'd say PHP is OO enough for most simple projects. I worked on the Zend Framework which is designed as an OO class library, with design patterns and such.

PHP için bir öneri size pek çok temel sınıflar için arabirimleri verir onun SPL bileşeni dikkat gerektiğidir.

Ben dedi öğretmen, eğer oldukça zayıf olduğunu düşünüyorum "tasarım belgenin içine istediğiniz bir şey koymak, UML diyagramları güzel." Tasarım belgeleri yazılım mühendisliğinin önemli ama ne yazık ki öksüz bir parçasıdır. Öğretmeniniz size iyi tasarım doc için örnekler veya şablonları gösteren olmalıdır.

PHP, günümüzde tam olarak nesne seçimi ile yönlendirilmiş olarak tanımlanabilir. Size ihtiyacınız olan her şeyi sunuyor ama OO kod yazmak zorunda değildir.

PHP ile ilgili OO ilkelerini anlamak bana çok yardımcı oldu, iki kitap vardır:

  • Eylem PHP (Manning)
  • PHP5 için Zend Eğitim Kılavuzu (Zend)

OO her şeyden önce bir tasarım methodoligy olduğunu.

As such it is possable to come up with an OO design which can be implmented in procedural langauges. I have seen this done for both C and COBOL projects. And it has convinced me that nearly all the advantages of OO are to do with design and NOT language implmentation.

Yani evet UML (Sınıf diyagramları, kullanım durumlarını, vb şeritli yüzmek) dolu bir OO tasarım ile gelebilir ve siz (sınıfları ya da kullanarak) php bunu uygulayabilirsiniz.

Anyway php is effectively a superset of OO so if you restrict youself to classes and functions inside classes ( == methods) you have an OO implementation.

The only thing lacking will be interface definitions but it makes very little sense to define interfaces in a language with such (un)limited type checking.

İşte are some UML bu belge Tigermouse çerçeve diyagramları. Ben bunu yararlı bulacağını umuyorum.