Odpověď, která z nich je lepší je "záleží." Jako u všeho existuje celá řada různých přístupů a měli byste také mít na paměti, že kód, který používá objekty, nemusí být nutně objektově orientovaný, ale stále může být napsán procedurálně. Ve stejném duchu může být kód, který nepoužívá objekty, stále modulární.
Rozhodl bych se použít mysqli
třída pokaždé. Ve výkonu není žádný výrazný rozdíl. Pravděpodobně si neuvědomíte některé výhody použití třídy DB, jako je zjednodušený polymorfismus, takže můj jediný argument pro použití třídy je, že preferuji syntaxi. Místo toho však použijte mysqli
přímo bych ti to asi doporučil rozšířit nebo složit. Můžete to udělat pouze se třídou.
class DB extends mysqli {
public function __construct() {
parent::__construct($_SERVER['DB_HOST'],
$_SERVER['DB_USER'], $_SERVER['DB_PASS']);
}
}
Toto je velmi povrchní příklad.
Příklad polymorfismu, o kterém jsem mluvil výše, by byl něco takového:
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);
Mimochodem, kategoricky preferuji PDO
přes mysqli