我是drupal的新手,并且之前使用过cakephp和codeigniter框架。它们都是基于MVC的,如果Drupal 6是基于MVC的,我不是100%确定,尽管它有单独的代码层。因此在codeigniter中,诸如/ users / show / 1之类的URL将被解释为它将在类“users”中,并且该方法将“显示”并且用户的id将为“1”。我们能用这种方式解释一个drupal URL吗?
我也知道drupal使用了很多路径别名,所以这会影响很大吗?所以如果我们有一个url,表示domain / admin / xyz?u = 1(例如url),在admin模块中我可以找到这个吗?
答案 0 :(得分:2)
简短的回答是否定的,你不能以你建议的方式解释Drupal URL。 Drupal不是MVC,URL不符合任何此类模式。任何模块都可以为它的页面定义它想要的任何路径,并且可以使用alises再次覆盖这些路径(正如您在问题中所建议的那样)。
Drupal 6中使用的OOP非常非常少,而且我无法想到任何声明任何类的核心模块(更不用说使用MVC样式约定声明它们)。这在Drupal 7中已经改变了一点,但它仍然没有使用MVC方法。
我担心您会被缩减为搜索核心模块的hook_menu()
实现,以查看特定路径使用的page callback
函数。即便如此,如果你打开了别名,你可能也找不到它。
作为一个小技巧,可以在$_GET['q']
中找到Drupal页面的路由器路径(“真实”路径)。