我正在开发一个类,它将使用凭据从远程源获取一些信息。这些凭证不会经常更改,因此它们可以成为配置的一部分。我的问题是,在PHP OOP中有什么更好的做法:
该类从构造配置中读取这些凭据。
public function __construct()
{
//get credentials from database, etc...
}
调用者类在构造时将它们作为参数提供。
public function __construct($credentials)
{
//save them for later use
}
答案 0 :(得分:1)
第二个例子。因为您对其他类的依赖性较小,因此可重用性较高。
答案 1 :(得分:1)
一个类永远不应该依赖外部的变量,除了参数之外。如果以这种方式构建程序,则可以在其他程序中重用类,或在其他参数的同一程序中重用。你应该问自己的问题:我可以再次使用这门课吗?在这种情况下答案是否..所以将它作为参数。
如果你认为一遍又一遍地给出参数很烦人。您可以使用依赖注入来自动提供正确的参数。或者使用基于配置构造类的工厂模式。
答案 2 :(得分:-1)
数字#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...
}
}