在php中實現mysql時,是否在使用面向對象方法而不是使用過程方法時存在顯着差異?關於mysqli_query
,(http://www.php.net/manual/en/mysqli.query.php)的php網站上,它提供了兩個示例,我只想知道是否存在任何顯着的性能差異,或只是知道何時使用它們中的每一個。在php程序和麪向對象實現的差異?
回答
回答哪一個是更好是「它要看」。與其他任何東西一樣,有各種不同的方法,您還應該記住,使用對象的代碼不一定是面向對象的,但仍然可以通過程序來編寫。同樣,不使用對象的代碼仍然可以模塊化。
雖然我會選擇每次使用mysqli
類。性能沒有顯着差異。您可能不會意識到使用諸如簡化多態的數據庫類的一些優點,所以我唯一使用該類的參數是我更喜歡語法。但是,我並不直接使用mysqli
,而是建議您擴展或撰寫它。你只能在課堂上做到這一點。
class DB extends mysqli {
public function __construct() {
parent::__construct($_SERVER['DB_HOST'],
$_SERVER['DB_USER'], $_SERVER['DB_PASS']);
}
}
這是一個很淺的例子。
我說的是上面的多態性的一個例子是這樣的:
class User implements DAO {
private $db;
public function __construct(DB $db) {
$this->db = $db;
}
}
//Testing code is simplified compared to using it in production
class TestDB extends DB {}
new User(new TestDB);
new User(new DB);
順便說我斷然喜歡PDO
超過mysqli
感謝您提供詳細的答案,並提供了一個很好的解釋和示例。我只是打勾了,但我會等一會兒,然後纔會有更好的答案。 – JPeroutek
不,沒有什麼區別。
但是你忽略了更重要的事情:在應用程序代碼中不必使用原始的mysqi API函數,無論是OOP還是程序。
PHP用戶不知道有一件事:API調用並不打算按原樣使用。他們必須被包裝在某種圖書館中。沒有它mysqli只是在後面痛苦,它需要比舊的好的mysql分機多兩倍的代碼。
所以,如果您使用這樣的圖層,它確實很重要,但如果它是使用內部的程序或OOP編寫的,則無關緊要。
然而,這個庫應該建立在類的形式。沒有別的辦法。
所以你在說應該創建一個所有MySQLi函數都被包裝好的類?或者你在談論更多的模型課程?我真的不知道MySQLi如何比原始的MySQL擴展需要兩倍的代碼量...... – Havsmonstret
我正在談論第一個。但我不得不承認,要理解DRY原則,必須具備一定的經驗和一些項目。 –
由於你是一名實習生,因此找出將來要維護代碼的人是明智的。
- 沒有公司。與OOP一起去,如果你對此感到滿意,因爲OOP是目前的做法。
- In House。有目前的做法,希望OOP
謝謝你的回答。我認爲我們正在內部進行這項工作,因爲這就是我製作網站的原因,他們僱用的最後一個組每隔兩週就會更換一次cms系統,所以我們正在尋求長期穩定性。 – JPeroutek
- 1. 面向對象的PHP如何實現?
- 2. Java對象差異實用程序
- 3. 差異實現的類和Java對象和C++
- 4. PHP編碼程序與面向對象
- 5. 真實世界面向對象的PHP應用程序
- 6. 在PHP的面向對象
- 7. 實現差異
- 8. 面向對象的PHP最佳實踐
- 9. 如何在python中的面向對象的程序中實現裝飾器
- 10. 面向對象的PHP與關鍵字接口,擴展,實現
- 11. 在Windows,MonoForAndroid和MonoTouch上實現界面的差異
- 12. 程序轉換成PHP的面向對象的PHP
- 13. Android - 實現差異
- 14. 面向對象的PHP和笨
- 15. 面向對象的PHP和陣列
- 16. PHP中對象的差異集合
- 17. mod_python和mod_wsgi之間的實現差異
- 18. MediaPlayer.create和setDataSource實現之間的差異
- 19. Zend_Rest_Server和Zend_Rest_Controller之間的實現差異
- 20. 面向對象的php
- 21. 面向對象的PHP
- 22. 面向對象的PHP
- 23. 面向對象的json_encode PHP
- 24. 做面向對象的PHP和程序PHP做同樣的事情嗎?
- 25. 面向對象編程實踐 - 概念/實體到對象
- 26. PHP的面向對象編程父實例孩子
- 27. 遇到問題以面向對象的方式實現我的應用程序
- 28. PHP中的數據庫和麪向對象實踐
- 29. PHP - 面向對象的實踐和傳承
- 30. 差異,監控對於實現同步
我是一個n00b我自己,但從我的理解,程序方法更容易閱讀。除此之外,沒有什麼。 (糾正我,如果我錯了) – dayuloli
表現:沒有。 Codeflow:是的。選擇一個適合你的項目。較新的OO代碼可能有利於更多的面向對象方法,然後是現有的/較舊的程序代碼。在面向對象方法中擴展和更好地控制對象的能力在大型項目中是很有價值的。 – Wrikken
事情是,我正在爲我正在實習的公司從頭開始寫一個網站。繼續使用OO方法會更好嗎?它是否更具前瞻性?對不起,如果我不清楚。 – JPeroutek