簡體   English   中英

面向對象的PHP應用程序設計

[英]Object Oriented design for PHP application

對於我們的學校項目,我們的任務是定義一個描述PHP應用程序體系結構的設計文檔。

我們可以自由決定在文檔中包含哪些內容。

我們的教授提出了很多(UML)圖表。

他還要求我們考慮類圖,但要小心,因為PHP不是完全面向對象的。

我的問題:面向領域的面向對象設計是否適用於PHP應用程序? 在PHP中執行OO時要考慮什么? 優缺點都有什么? PHP和PHP最佳實踐中有關OO的任何有用資源?

恕我直言,如果不知道應用程序應該做什么,很難描述任何應用程序的架構。 任何復雜性的所有應用程序(PHP或其他)看起來都不同。

其次,PHP5為您提供了類/對象以及通常過多的OO gubbings - 所以將其描述為“不完全面向對象”是我認為的誤導。 如果你的意思是你可以采取一種程序性方法而不受限於對象,那么是的,但是如果你想要一切都成為一個對象那么這就是你的選擇。

DDD對PHP是否可行? 當然是。 架構的一種特殊方法通常不依賴於技術。 OO設計的最佳實踐,優點/缺點適用於大多數語言 - PHP讓您可以自由決定如何構建代碼。

您可以從PHP站點找到這個最佳實踐講座有用;)

現在可以將PHP描述為完全面向對象的選擇。 它提供了您需要的一切,但您不必編寫OO代碼。

有兩本書幫助我理解了與PHP相關的面向對象原則:

  • PHP in Action(曼寧)
  • 適用於PHP5的Zend學習指南(Zend)

目前使用的大多數OO語言都不是完全面向對象的。 每種語言都有特質和陷阱。 所以我認為PHP對於大多數簡單的項目都足夠了。 我參與了Zend Framework,它被設計為OO類庫,具有設計模式等。

PHP的一個建議是你應該注意它的SPL組件,它為你提供了許多基本類的接口。

如果你的老師說“把你想要的任何東西放到設計文檔中,那么UML圖很漂亮”,我覺得它很弱。 設計文檔是軟件工程中一個重要但被低估的部分。 您的老師應該向您展示優秀設計文檔的示例或模板。

OO首先是一種設計方法。

因此,有可能提出一種可以在程序語言中實現的OO設計。 我已經看到這對C和COBOL項目都做了。 它讓我確信OO的幾乎所有優點都與設計和非語言實施有關。

所以是的,你可以想出一個帶有大量UML(類圖,用例,泳道等)的OO設計,你可以在php中實現它(使用類或不使用類)。

無論如何,php實際上是OO的超集,所以如果你將自己限制在類(==方法)中的類和函數,那么你就有了OO實現。

唯一缺少的是接口定義,但用這種(非)限制類型檢查定義語言中的接口是沒有意義的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM