我正在为一个PHP框架(不是,另一个)编写点点滴滴,作为学习的经验,希望将来可用于较小的项目.
我已经读了很多书,即现有框架的参考文档.我看到模块一词泛滥成灾,根据我的阅读和以前的经验,模块是一个概念,用于划分相关代码(视图,控制器,模型等).
我很好奇,在这种情况下如何看待模块? (上下文是MVC Web应用程序体系结构或类似的应用程序开发模式)
我正在尝试确定如何最好地应用它,因为(我认为)它适合我当前的困境.对于音乐网站,模块将被视为艺术家,制作人等,而控制器将被视为个人资料,媒体等.这当然会留下诸如查看或编辑之类的动作.
这一切似乎都很好,因为现在我可以像这样进行路由了:
'Artist/Profile/View/{ALIAS}'
+- Module : Artist
+- Controller : Profile
+- Action : View
//this may be accessed via music.com/artist/{alias}
//defaulting the Controller and Action
..但是我试图弄清楚模块概念在这里如何适合,特别是我如何组织或修改控制器以适应.
这就是我正在考虑的文件系统布局.
+- Root
+- 'index.php'
+- 'api.php'
+- Modules
| +- Public
| | +- Controllers
| | +- Views
| |
| +- User
| | +- Controllers
| | +- Views
| |
| +- Artist
| | +- Controllers
| | +- Views
| |
| +- Producer
| | +- Controllers
| | +- Views
| |
| +- Venue
| | +- Controllers
| | +- Views
| |
| +- Administrator
| +- Controllers
| +- Views
|
+- Models
+- Config
+- ...
解决方法:
在大多数框架中,模块(在CakePHP中称为Plugins)几乎都是微型应用程序.它们内部有自己的MVC结构,通常是独立的,也许仅依靠主应用程序模型来保持代码可重用.
我们在工作的地方使用Zend,而模块的示例就是
>管理员模块,站点管理员可以对系统进行更改.
>网站一般前端的Web模块
>用于已登录用户的用户模块,这些用户具有其他管理工具来执行站点上的活动
基本上所有这些都属于同一个站点/系统,但是大多以不重叠的方式进行.
标签:module,model-view-controller,php,routing
来源: https://codeday.me/bug/20191208/2093145.html