【发布时间】:2011-05-03 20:14:14
【问题描述】:
我正在建立一个类似于 Facebook 的社交网络类型的网站。我正在使用 PHP、javascript、jquery、MySQL、Memcache 和 APC。我之前用 PHP 构建了社交网络,它们是非常复杂和大型的应用程序(用户系统、论坛、博客、个人资料、虚拟货币、货币商店、消息传递以及更多功能/部分/模块,但所有这些都是以程序风格编码完成的, 过去一年我一直在研究 PHP 面向对象的 OO,现在我对 PHP 中的 OO 有了更好的理解(非常感谢 Stackoverflow)。之前,我对类和对象以及如何使用或创建它们一无所知。
好的,回到问题,我将构建自己的框架,或者更好地说,这个项目的代码“库”,然后如果需要,我可以在将来使用它。我不想使用现有的框架,我更愿意构建自己的框架,这样我才能真正了解 eac 方法和对象等是如何工作的。
我倾向于使用 MVC 模式或类似的东西。我将拥有我称之为模块的东西。示例模块;用户或帐户、邮件/消息、论坛、博客等......每个模块几乎都可以加入,并且可以与我的其他代码一起使用。所以每个模块都有自己的文件夹,并且几乎是自包含的。 "modules/forums/" 可以有控制器 + 模型 + 视图.... "modules/forums/controllers/" "modules/forums/models/" "modules/forums/views/"
到目前为止,这是我的基本想法,当一切都说完后,它可以而且可能会改变一些。
我已经创建了一个路由类,它将接受一个 URI 的数组映射来匹配。如果我访问
www.domain.com/forums/viewtopic/id-242342/page-23
然后我会有一个与正则表达式匹配的数组,它会给我这样的东西......
$uri['module'] = 'forums';
$uri['method'] = 'viewtopic';
$uri['id'] = '242342';
$uri['paging'] = '23';
然后我可以使用该数组为该页面构建或调用适当的东西。
我正在考虑使用一个简单的模板/视图类来包含一个视图文件,该文件将混合 html 和 PHP,但除了 if/else、foreach、变量等之外没有真正的 logig
我真正的问题或我不完全理解的地方...这种 MVC 类型模式似乎适用于简单的页面,例如博客,我可以让 MVC 显示博客文章或博客列表,但是更复杂的页面,就像您在 facebook 等网站上看到的那样,博客页面,可能不仅仅是博客内容,它可能有广告屏蔽、朋友屏蔽等以及页面上的其他内容,使用 MVC 是不是一个坏主意和这样的网站的视图/模板?我注意到包括 facebook 在内的所有社交网站,似乎没有一个使用这个系统,它们都有单独的页面来构建页面,例如,邮件/消息将在 messages.php 上,而不是通过 1 个文件路由的所有内容。
我希望这个问题/帖子对某人有意义,有人可以提供一些见解,感谢您的时间和任何建议/提示/建议!
【问题讨论】:
-
完成这个项目后,赌一美元,你将使用预制框架;)
-
@Byron Whitlock 我对此表示怀疑,几年来不时地建立自己的目标/梦想是我的目标/梦想,然后尽可能多地改进它,没有其他东西是这样的我有一种很好的成就感。但是,如果我确实切换到现有的,我至少很可能知道如何更好地使用它
标签: php model-view-controller social-networking