Php 如何实现多用户cms?

Php 如何实现多用户cms?,php,symfony,content-management-system,Php,Symfony,Content Management System,我想实现一个多用户CMS网站,每个用户都可以在自己的记录上执行CRUD操作。这意味着应该在记录级别而不是模型级别实现安全性 我提出了两种解决方案: 在每个型号中都有一个owner\u id字段 为每个用户修改的模型创建一个数据库。为所有相关记录(如用户数据(姓名、电子邮件、用户名、密码)、管理员编辑的模型(但不是用户)保留一个主数据库 解决方案2,我想在Apache的帮助下实现。例如,对于user3,这将是一个独立于主网站www.mydomain.com的网站。除了/web/uploads和/

我想实现一个多用户CMS网站,每个用户都可以在自己的记录上执行CRUD操作。这意味着应该在记录级别而不是模型级别实现安全性

我提出了两种解决方案:

  • 在每个型号中都有一个
    owner\u id
    字段
  • 为每个用户修改的模型创建一个数据库。为所有相关记录(如用户数据(姓名、电子邮件、用户名、密码)、管理员编辑的模型(但不是用户)保留一个主数据库

  • 解决方案2,我想在Apache的帮助下实现。例如,对于user3,这将是一个独立于主网站www.mydomain.com的网站。除了
    /web/uploads
    /config
    之外,我将对所有目录进行符号链接:

    • /config
      -我需要user3的数据库配置
    • /web/uploads
      -我将使用它们进行上传

    是否有一种最佳实践/设计模式可以通过Symfony实现这一点?我从未开发过一个可以根据用户动态选择数据库的网站(解决方案2),所以我想知道这是否有意义


    我有使用Symfony 1.x的经验,但尚未对Symfony2进行任何开发。

    我会选择解决方案1,为所有实例提供一个数据库,其中包含一个所有者id字段。这样维护比较容易。在某些情况下,您可能必须对数据库进行更改,并且必须在多个数据库上进行更改可能会成为一场噩梦,除非您以某种方式将其自动化


    除非你有一些严重的安全问题需要考虑,否则在单独的数据库中做它几乎没有任何优势。

    < P>我将使用解决方案1,对于拥有Orrer-SoID字段的所有实例都有一个数据库。这样维护比较容易。在某些情况下,您可能必须对数据库进行更改,并且必须在多个数据库上进行更改可能会成为一场噩梦,除非您以某种方式将其自动化


    除非你有一些严重的安全问题需要考虑,否则在单独的数据库中做这件事几乎没有什么好处。

    如果我为一个用户设计了大量的第三方软件/插件,那该怎么办?在这种情况下,我必须扩展所有这些,添加所有者id,并确保不会破坏它们。这就是为什么我考虑解决方案2的原因。你觉得怎么样?对不起,我直到现在才注意到你的评论。在这种情况下,您可能真的没有选择,只能使用解决方案2,扩展或更改第三方软件和插件可能会很快成为一个巨大的维护问题。如果我使用了大量为单个用户设计的第三方软件/插件,该怎么办?在这种情况下,我必须扩展所有这些,添加所有者id,并确保不会破坏它们。这就是为什么我考虑解决方案2的原因。你觉得怎么样?对不起,我直到现在才注意到你的评论。在这种情况下,您可能真的没有选择,只能使用解决方案2,扩展或更改第三方软件和插件可能会很快成为一个巨大的维护问题。