相关疑难解决方法(0)

PHP - 一个DB抽象层使用静态类vs单例对象?

我并不想创建一个关于单比静态比全球要好,等我看了几十个关于SO类似问题的问题,但我不能想出一个回答这个具体问题更好的讨论,所以我希望有人可以用一个(或多个)真实的简单例子来回答这个问题,而不仅仅是理论上的讨论.

在我的应用程序中,我有一个典型的DB类来抽象数据库层并在数据库上执行任务而无需在代码中随处写入mysql_connect / mysql_select_db / mysql...

我可以把这个类写成静态类:

class DB
{
   private static $connection = FALSE; //connection to be opened

   //DB connection values
   private static $server = NULL; private static $usr = NULL; private static $psw = NULL; private static $name = NULL;

   public static function init($db_server, $db_usr, $db_psw, $db_name)
   {
      //simply stores connections values, without opening connection
   }

   public static function query($query_string)
   {
      //performs query over alerady opened connection, if not open, it opens connection …
Run Code Online (Sandbox Code Playgroud)

php database oop singleton static

24
推荐指数
1
解决办法
1万
查看次数

php OOP异常还是死()?

我正在开发一些项目.我想控制不同的错误.我知道在所有流行的框架和php项目中都有不同的异常.但我认为这不是必需的工作.如果发生错误,我们可以使用我们的消息制作die().1.例外的主要优点是什么?2.我可以用die()控制我的错误吗?

谢谢.

php oop coding-style exception die

2
推荐指数
1
解决办法
3024
查看次数

如何在PHP中组织类并从类中访问数据库

我已经编写了程序PHP大约8年,最后我开始学习OOPHP.我已经阅读了很多教程,并且我理解语法并且使用它非常舒服.但是,我找不到的是一个如何设置类文件结构的实际示例,以及如何从类中访问我的数据库以在其中执行查询.

我最初的想法是创建一个名为/ class的单​​独文件夹,并为每个类创建一个文件.如果一个类扩展了另一个类,我会将include()子文件中的父文件.在我的主要脚本中,我会调用类,因为我需要它们.例如,include(/class/member.php)当我需要他们成员班.

另外,我写了一个扩展mysqli的数据库类(我知道很多人会建议我使用PDO,如果你有一些理由为什么随意提供它们,虽然我会说我不希望永远不使用MySQL) .真正让我失意的部分是如何在我的课程中打开数据库连接.例如,我的想法是在我将传递的成员类中member_id,然后我将在类中执行查询以将其所有属性设置为成员的属性.最初我在我的主脚本中包含了数据库类并创建了它的实例,然后在我的成员类中将句柄声明为全局(我已经读过全局变量是邪恶的,我还是不喜欢那个解决方案).有什么更好的方法呢?

谢谢你的帮助!

php database oop class filestructure

1
推荐指数
2
解决办法
1541
查看次数

标签 统计

oop ×3

php ×3

database ×2

class ×1

coding-style ×1

die ×1

exception ×1

filestructure ×1

singleton ×1

static ×1