PHP:序列化vs单例vs依赖注入vs其他?

PHP:序列化vs单例vs依赖注入vs其他?,php,serialization,dependency-injection,singleton,Php,Serialization,Dependency Injection,Singleton,我已经在代码中找到了我需要时总是想访问的对象。 一个数据库对象,它保持与数据库的连接。这是一个静态对象,连接不会更改。 我有一个用户对象,它包含用户级别、用户名和id 我读了一些关于如何做到这一点的帖子和文章。我找到了3个解决方案 -使用单例 -序列化对象并将其存储在会话中 -使用依赖注入 单身是不好的,因为全局是不好的。 序列化对象并将其存储在会话中对我来说很难看(不知道为什么) 使用依赖项注入会使构造函数中充满参数 现在我有两个问题 -还有其他我没有提到的方法吗? -授予对上述对象的总体访问

我已经在代码中找到了我需要时总是想访问的对象。 一个数据库对象,它保持与数据库的连接。这是一个静态对象,连接不会更改。 我有一个用户对象,它包含用户级别、用户名和id

我读了一些关于如何做到这一点的帖子和文章。我找到了3个解决方案 -使用单例 -序列化对象并将其存储在会话中 -使用依赖注入

单身是不好的,因为全局是不好的。 序列化对象并将其存储在会话中对我来说很难看(不知道为什么) 使用依赖项注入会使构造函数中充满参数

现在我有两个问题 -还有其他我没有提到的方法吗?
-授予对上述对象的总体访问权限的最佳方法是什么?

你把一切都搞砸了

授予对上述对象的总体访问权限的最佳方法是什么

不,根本没有这种方法 它们是不同的对象,需要不同的处理

对于数据库对象,您几乎没有选择。
您可以在每个请求中创建它,并在整个处理过程中使用它(当然,您需要使它成为全局的,以便在其他类中使用)。
或者将其用作静态单例对象,每次需要与数据库交互时都会调用它。它将在第一次调用时建立数据库连接,并最终使用它直到处理请求结束。如果有另一个请求,它将重新开始

对于用户对象,会话中的透明序列化和依赖项注入都很好。

然而,在每个请求上创建一个用户对象并不是一个坏主意。在你的位置上,我不会这样折磨你

对于一个艰难的现实感到抱歉,但是您使用了软件开发中的专业术语,但您不知道如何。。。DI可以使用构造函数,也可以使用setter方法。。。您也可以使用DI容器,如pimple、synfony或flow3。。。或者写一本自己的

我们在一个内部框架上工作,在这个框架中,我们不允许单例直接会话访问。当然->也许你必须学习建筑


有一些好书可用。

序列化对于数据库对象不是一个好主意。。。无法序列化数据库连接等资源