它目前建立在codeigniter和PHP上,我认为它不适合SAAS版本.我计划从头开始在laravel 4中重新构建它,并使用条带作为支付网关.
我的关心是如何最好地处理多个客户端的数据库/应用程序结构.目前,它只是服务于一个业务,非常不抽象,特定于我爸爸公司的需求.我需要它能够处理不同的数据,这取决于使用它的业务.
我已经研究了多租户,但我不知道这是正确的.我认为“gmail”风格的做法会更好.登录用户后的一个应用程序/域将会看到他们自定义的信息中心,只显示他们的数据.
在我陷入编码之前,我需要弄清楚如何最好地在一个数据库上处理多个“帐户”.我不想为每个用户创建一个表,也不需要为每个用户创建一个数据库.
我想我的问题是,任何人都可以指出我在正确的方向如何最好地处理Laravel的每月付款订阅?这不是我正在努力的代码,而是我需要建立什么来处理每个月对客户收费,如果计费失败,拒绝他们访问.
谢谢
解决方法
首先,我们现在完全忽略这个计费方面 – 在一天结束的时候,这部分应用程序真的相当微不足道.从37signals Rework开始(第93和94页),并在30天免费试用之前启动产品,然后再开始实施(您应该知道如何实现).
第二,为什么你认为“gmail”不使用多租户,URI结构对底层的数据库结构一无所知.我相信他们不会为每个客户克隆数据库模式.因此,您可能已经回答了自己的问题 – 您想实施多租户.
您将要抽象您的数据库(和应用程序体系结构),而且老实说,没有更好的资源帮助您比泰勒·奥特维尔(Laravel的创始人)书籍Laravel: From Apprentice To Artisan这样做.他的书不适合初学者,当你完成阅读之后,你应该可以自己回答这个问题.
您不会为每个用户创建表或数据库,甚至不会为每个组织创建一个表.相反,您将在代码中创建抽象数据库结构,从而将用户数据从数据库中提取出来.
考虑检查访问组织的权限作为另一层用户身份验证.在每个请求中,您将检查该用户是否可以访问特定的组织.您可能还会检查以确保该组织仍然活跃(由于没有付款而过期),这将再次发生在每个请求上,并且可能会使用filter within laravel.
这真正导致开发SaaS应用程序的另一个非常重要的因素.
我不知道你,但我是偏执狂的,如果我不确定用户号码4506看不到他不属于的组织的数据,我晚上睡不好.确保这一点的唯一真正的好方法是通过单元测试,如果您还没有,我强烈建议您学习.
在Laravel 4中最好的方法是阅读Jeffrey Way的书籍Laravel Testing Decoded.这本书是非常先进的,但是如果你对基础知识有了很好的把握,那么它们还是很容易理解的.
最后但并非最不重要的是,第一件事涉及社区 – 最简单的方法是建议在#laravel IRC channel(freenode)上闲置.提出一些问题,也许回答一些问题,渠道中的每个人都非常好和敏感.
你绝对是冒险,不要害怕提问,犯错误.祝你好运.