为长期问题道歉。我知道如何使用类,但有时我会在 时使用它们。 我的问题确实是三倍..
1)总是使用类方法是不错的做法,即使该类不一定获取/设置任何属性?
例如,如果我想要一个函数只是吐出一个HTML标题,我应该这样做......
namespace Project1\UI;
class HTML
{
public function makeHeader()
{
echo "<html><head><title>Title</title></head><body>";
}
}
2)您是否为数据库访问等内容构建自己的类,而不是直接调用PDO扩展? 下面的代码增加了复杂性,实际上只是将值传递给PDO:
namespace Project1\DB;
use \PDO;
class Database {
private $pdo;
private $statement;
public function __construct() {
require $_SERVER['DOCUMENT_ROOT'] . 'Project1/Config/Login.php';
$pdo = new PDO(
sprintf (
'mysql:host=%s;dbname=%s;port=%s;charset=%s',
$settings['host'],
$settings['name'],
$settings['port'],
$settings['charset']
),
$settings['username'],
$settings['password']
);
$this->pdo = $pdo;
return $pdo;
}
public function prepare($statement) {
$this->statement = $this->pdo->prepare($statement);
}
public function bind($placeholder,$value) {
$this->statement->bindValue($placeholder,$value);
}
public function execute() {
$this->statement->execute();
return $this->statement->fetchAll(PDO::FETCH_ASSOC);
}
}
3)如果我想使用全局函数,是否有将这些存储在磁盘上的好习惯?大概我应该把它们放在一个单独的文件/命名空间中?
/Project1/Logic/Validation.php << Contains a class
/Project1/Logic/Search.php << Contains a class
/Project1/Logic/Compare.php << OK to just contain a function?
谢谢:)
答案 0 :(得分:0)
回答第1和第3个问题
是的,您可能只有实现函数的类而不在属性中存储值。我们称之为助手 ......
不,不是为项目中的每个函数创建一个类都不是一个好主意。请记住,您需要包含的文件越多,服务器将花费的阅读/解释时间就越多,这意味着执行脚本的时间会更长。
回答第二个问题
这是你的电话。我建议扩展原生PDO课程,而不是使用Proxy Class。
PDO是一个很好的课程,你不想限制自己或重新发明轮子