我正在使用 Twitter/Facebook 集成制作一个简单的 PHP 应用程序来练习 OOP 概念和模式,我需要有关如何设计它的帮助。
我的应用程序会做什么
基本上,一旦用户登录,他就会显示一个带有标题和正文字段的表单。当他点击“发布”时,该内容将被适当地转换并发布到 Facebook 和 Twitter。当然,如果他还没有这样做,他还可以选择验证我的 FB/Twitter 应用程序。这就是我想要达到的目标。
到目前为止我想出的结构
由于必须在多个文件之间共享数据库访问,因此我使用的是单例模式。本质上,我有一个带有静态mysqli 链接的 DB 类和一个获取此数据库链接的静态方法。模型将通过这个单一链接使用 mysqli 函数。(我还不想抽象数据库类型。)
我有一个User类,它保存用户的数据,比如它的id、username 和 hashed password。它具有根据 id、凭据检索用户甚至将当前用户保存到数据库的方法。
Auth类管理会话并为有效用户返回一个User对象。因此,它管理登录,并在页面访问之间保持用户登录。
我遇到问题的结构
我现在需要访问用户的Twitter 和 Facebook信息。当然,它们将位于不同的表中,并有单独的类与它们交互。但是这个类中的每一个都与一个User相关联。
因此,当我从数据库中获取用户信息时,我还将使用 JOIN 从 Twitter 和 Facebook 表中获取相应的数据。然后,我的计划是在我的 User 对象中实例化一个 Twitter 和 Facebook 对象。所以,这两个类可以通过 $user->twitter->post("Something"); 来访问。
这是一个好的结构,还是有更好的组织课程的方法?这是一个简单的应用程序,编码不是我关心的。我关心的是结构,因为我应该能够向应用程序添加新的社交网络。