PHP函式設計的一點想法

2021-05-28 02:39:48 字數 1564 閱讀 2717

物件導向開發php應用程式的過程中,估計大家都比較惆悵類的設計和函式的設計。乙個好的函式,讓使用者和後期專案維護者都受益。那麼如何來寫好你的函式呢?

下面是一段來自initphp開源框架 的一段**:

/**

* 類的例項化 單例模式

* * @param string $classname 類名

* @param string $force 是否強制重新例項化

* @return object

*/public static function loadclass($classname, $force = false)

return self::$instance[$classname];

}

大多數開發過程式的朋友應該一看loadclass就知道這個函式是用來載入類的。這樣的類命名就比較靠譜。

不和諧的命名:

public function delwz()
這樣的名稱,很難理解是什麼意思。

下面是一段來自doitphp 的一段**:

/**

* 返回唯一的例項(單例模式)

* * 程式開發中,model,module, widget, 或其它類在例項化的時候,將類名登記到doitphp登錄檔陣列($_objects)中,當程式再次例項化時,直接從登錄檔陣列中返回所要的物件.

* 若在登錄檔陣列中沒有查詢到相關的例項化物件,則進行例項化,並將所例項化的物件登記在登錄檔陣列中.此功能等同於類的單例模式.

* * 注:本方法只支援例項化無須引數的類.如$object = new pagelist(); 不支援例項化含有引數的.

* 如:$object = new pgelist($total_list, $page);

*  ** $object = doit::singleton('pagelist');

**

* @access public

* @param string $class_name  要獲取的物件的類名字

* @return object 返回物件例項

*/public static function singleton($class_name)

$key = strtolower($class_name);

if (isset(self::$_objects[$key]))

return self::$_objects[$key] = new $class_name();

}

非常詳細的**注釋和規範。

筆者不贊成程式設計師在開發**的過程中,刻意去追求函式的最小化,例如一定要每個函式小於10行之類的。函式過長對閱讀函式的確不好,這個時候就需要將函式中可以重用的**剝離出來,寫幾個新的函式。但是如果你的函式無法剝離,或者剝離出來之後,並不能將這些**重用起來,那麼還是別分太細。每個函式應該有自己比較強壯的功能,分太細只會讓閱讀者看乙個函式的具體邏輯而要找n多個函式,這樣反而對開發者的閱讀起到不良效果。

PHP漫談 PHP框架一點想法

今天看了一篇文章,文章主要講的是從校園到職場切記照本宣科。讀完文章收貨頗深,中間一語帶過一點關於php的話題。但是看完這一小段我自己不禁陷入了沉思,下面是我的一通胡言亂語。記得剛開始使用php的時候,對於乙個學了一學期連c語言函式都看不懂的孩子,就是覺得這門語言太簡單了,太適合我了。我可以很快的搭建...

關於設計模式的一點想法

軟體開發的理想是開發出高內聚 低耦合的軟體,學習 掌握優秀的設計模式並在實際開發過程中合理地加以運用,可以開發出可讀性 可維護性和可測性強的程式,降低 的冗餘性。由此想到,我們在軟體開發過程中,經常過分關注於具體的實現細節,忽略了考慮軟體設計上是否合理 是否存在更加可取的設計模式,而有意識地思考設計...

論壇程式的設計 一點想法

discuz論壇程式的資料結構 可以參考這裡,不過看著頭暈。http www.neter8.com thread 97856 1 1.html discuz 論壇資料庫結構參考 一是論壇的首頁,普遍採用了論壇分組的模式,沒有出現以前的那種論壇列表的某個論壇的下面還寫著 分論壇 yyyy,zzzz等樣...