在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