我正在开发一个类,它将使用凭据从远程源获取一些信息。这些凭证不会经常更改,因此它们可以作为配置的一部分。我的问题是,在PHP OOP中什么是更好的实践:
-
类在构建时从配置中读取这些凭据。
public function __construct() { //get credentials from database, etc... }
-
调用者类在构造时提供它们作为参数。
public function __construct($credentials) { //save them for later use }
类不应该依赖于外部变量,除了参数。如果您以这种方式构造程序,则可以在其他程序中重用您的类,或者在具有其他参数的同一程序中重用您的类。你应该问自己的问题是:我能再次使用这门课吗?在这种情况下,答案是否定的。所以给它一个参数。
如果你觉得一遍又一遍地给出参数很烦人。你可以考虑使用dependencyinjection来自动给出正确的参数。或者使用基于配置构造类的工厂模式。
第二个例子。因为您对其他类的依赖更少,因此具有更高的可重用性。
这可能是有用的:为什么web架构应该是松耦合的?
#1:在某些情况下,如果您不需要始终初始化值
class Mysql{
public function __construct(){
$conn = mysql_connect("localhost", "root", "") or die("Error");
mysql_select_db("dbname",$conn) or die("Error");
}
public function inser_data(){
// query here...
}
}
#2:这取决于类的行为。如果你需要设置值来运行你的类,那么你需要总是获取数据。
class Bike{
var $speed;
var $type;
public function __construct($properties){
$this->speed = $properties["speed"];
$this->type = $properties["type"];
}
public function calculation(){
// script here...
}
}