什么是MVC / HMVC / PAC模式中URL结构的约定?
在MVC中,它就像
http://www.yourdomain.com/sampleController/sampleAction/
,如果你只打电话给/sampleController/
然后/sampleController/indexAction/
,如果你只是打电话/然后/indexController/indexAction/
开火。
当然也有例外,但这或多或少都是惯例。
Zend有一些smilir。他们称之为模块。
它们基本上只是包含MVC逻辑的文件夹。所以你可以打电话给/Module1/Controller/Action/
。如果你只是拨打/Module1/
然后/Module1/indexController/indexAction/
开火。如果你有一个巨大的项目,它很方便,因为你可以构建更多,但如果你只有一个小项目它很烦人。
所以我非常喜欢HMVC / PAC的想法,并希望在我的框架中采用它。
我是否正确理解它与Zend基本相同但是具有无限的嵌套模块?
所以例如我有/sub-project/sub-sub-project/controller/action/
?
如果我打电话给/ A / B / C / D /那是什么惯例。
它是指模块A / B中控制器C中的动作D吗?
或模块A / B / C中控制器D的IndexAction?
让我们举一个例子:
Content
ToplistController
AdministrateAction
IndexAction
ContentController
ToplistAction
Users
Chat
RoomController
IndexAction
我现在称URL为/content/toplist/
。
对于URL/users/chat/room/?room=1
,该示例使其显而易见,因为只有一种可能性。但这是正确的吗?是否存在在右侧控制器中唯一地添加正确操作的约定?
我的第一个想法是“尽量少猜”。
所以我首先检查网址是否与某个动作直接匹配。
如果存在一个带有索引动作的控制器/模块,如果存在“更高级别”的匹配,则无法触发。
如果不是这种情况,我会看到url是否与控制器直接匹配并附加IndexAction。
如果不是这种情况,我会寻找一个模块并猜测IndexController和IndexAction,如果不是这种情况,我会寻找一个名为index的模块。
但我想避免这个if / else的东西和文件系统访问。所以我想知道会议是怎么回事。或者甚至有一个?我找不到任何例子!
或者做一些像调用IndexAction,如果没有指定只是没有完成,但每个“短网址”必须在单独的路由逻辑中指定?
或者我完全误解了HMVC / PAC的概念?
仅供参考:我包含了php标签,因为我在php中使用我的框架,想知道php中的约定。我经常看到其他编程语言的差异。
没有找到相关结果
已邀请:
2 个回复
捻盒愧杯
枫湃揩乾纲
而在“路由”框架中的相同可能是类似的
将两个URI以某种方式映射到应用程序中知道如何删除的机制。