问题标签 [hmvc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
762 浏览

php - 在特定文件夹 HMVC 中自动加载模型类的最佳方法

我目前正在使用 HMVC 设计模式编写自己的 PHP 框架作为学习练习。一切正常:),但我读过很多次,在 PHP 代码中引用静态类是一个坏习惯,这正是我在自动加载函数中所做的:

如您所见,我使用 static call 获取当前应用程序Dispatcher::getApplicationName(),这在许多人看来很糟糕,因为它引入了依赖关系。我也可以使用 获取 applicationName debug_backtrace(),因为启动模型的类包含 ApplicationName 作为属性。那更好,还是我没有想到其他选择?

谢谢!

编辑:忘了提到上面的代码还有另一个问题:控制器的应用程序并不总是等于调度程序的应用程序,因为我使用的是 HMVC 设计模式(所以控制器在控制器内部被调用)。这只能使用debug_backtrace.

编辑:而不是Dispatcher::getApplicationName()我现在使用Request::getCurrentApplicationName(). 它现在又可以工作了,因为我的请求类保存了所有应用程序。这是更好,还是有更好的方法?

0 投票
2 回答
1397 浏览

asp.net - HMVC模式的准确使用/消费?

我正在尝试了解 HMVC 以及如何或是否应该在我当前的 MVC 应用程序中考虑它。

关于 [this][1] question about MVC architecture 的引用,

有时,Hierarchical-Model-View-Controller (HMVC) 模式(又名 Presentation-Abstraction-Control)是处理更复杂的界面和应用程序需求的好选择。

“然而,当涉及到 GUI 元素(小部件)的控制时,传统的 MVC 范围不足。MVC 不处理数据管理、事件管理和应用程序流的复杂性。作为 MVC 三元组的改编,HMVC - - Hierarchical-Model-View-Controller——范式旨在解决上述一些问题。”

Jason Cai、Ranjit Kapila 和 Gaurav Pal(2000 年 7 月)。“HMVC:用于开发强大客户层的分层模式”。Java世界杂志。

[1]: https ://stackoverflow.com/questions/113602/when-to-use-mvc-architecture

我一直在尝试理解 PAC/HMVC,上面的文字引起了共鸣。HMVC 的三元组抽象可以应用于页面上的“小部件”,或者在使用 ASP.Net 视图引擎(相对于 Razor 视图引擎)时如何转换为页面上的“控件”。

这会是 HMVC 模式的准确应用吗?

如果是这样,我不确定这将如何实施。我确实看到了这样做的好处,因为如果主页加载正常,并且某些用户控件/小部件出错,页面仍然可以加载。

那么主页面控制器会调用它的小部件控制器吗?从主视图来看,我猜测模型继承会发挥作用,就像您在简单的 MVC 页面视图中使用模型的对象一样。

这在代码中会是什么样子 - 从顶层视图中调用两个或三个三元组中的模型数据?

0 投票
7 回答
7121 浏览

codeigniter - 使用 tank auth 设置 Codeigniter HMVC

我无法正确设置带有 hmvc 和 tank auth(设置为模块)的工作 Codeigniter 版本 2.0.3。我已经正确安装了 CI,然后按照这些说明安装了 HMVC https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home

我以我的欢迎控制器/视图为例就好了,这意味着 HMVC 正在工作。接下来,我尝试通过将 tank auth 添加到模块文件夹中的文件夹来将其添加到项目中。它具有适当的控制器/视图/模型等。在坦克身份验证中设置。我什至在路线中添加了类似的东西

$route["auth"]="auth/login";

我还按照指示将 auth 模块中的控制器扩展为 MX_Controller。同样在构造函数中我有:

它似乎很好地重定向到模块但是它出现了一个错误说::

遇到错误

无法加载请求的类:安全

我究竟做错了什么?有没有人安装了 HMVC 和 tank auth 作为模块的有效 CI 安装,所以我可以看到它是如何完成的?我是HMVC的新手,谢谢

0 投票
1 回答
623 浏览

php - CodeIgniter 中的模块是什么?

我想了解 CodeIgniter 中的模块,在哪里可以学习如何开发模块?

0 投票
1 回答
1227 浏览

php - CodeIgniter 模块化扩展在 CentOS 上损坏

我多年来一直在使用 CodeIgniter (1.7.2+),并让它在 15+ 个实时生产环境中运行(喜欢它)。最近我和我的团队指定了一个非常复杂的系统,它需要比标准 MVC 更复杂的东西,所以我们开始研究用于 CI 的 HMVC 模块化扩展(2.0.3)。到目前为止,我们已经在本地系统的 XAMPP 和 MAMP 环境中启动了它,完全没有问题,它看起来正是我们需要的。当我们尝试在 CentOS 中加载它时,问题就出现了。

使用与我们本地安装完全相同的 SVN 存储库并将其拉出到 CentOS 服务器(我尝试了两个单独的 CentOS 机器),它只会抛出一个白屏——跟踪日志我收到 500 错误。我确信它在 HMVC 模块内部,因为同一个 CentOS 安装正在运行基本 CI 安装而没有问题。

为了排除故障,我删除了加载数据库的自动加载条目,然后我将以下输出显示到屏幕上:

我只在 CentOS 盒子上得到这个,该文件的第 58 行不是很清楚,HTTPD 错误日志也没有显示任何有用的东西。有没有人遇到过这个问题,其他人可以重现吗?除了基本 CI 要求之外,我从未见过提及任何服务器依赖项,所以我不知所措。我们迫切需要在这个项目上使用 HMVC,但我无法将我什至无法加载的东西推向市场。

为了进一步限制我们注入坏东西的可能性,我重新安装了 CI,重新加载了 HMVC 模块,没有碰其他任何东西……失败!完全相同的结果,在 CentOS 5.5 上出现相同错误的本地人上运行。

任何帮助是极大的赞赏...

更新

意识到错误只是一个通知(尽管我讨厌这样做),我关闭了错误报告只是为了看看发生了什么。它立即回到抛出 500 错误。我可以在 index.php 中放入 die() 语句并将输出输出到屏幕上——所以更麻烦的是我在 CentOS 中的 HMVC 模块完全失败,而不仅仅是一个通知。我将尝试通过系统 die() 并找到正在执行此操作的实际线路.. Joy..

Craig A Rodway 要求的 4 级 CI 日志文件

更新#2

好的,有两件事似乎导致了我的问题——我没有完全修复,但我现在可以在系统中工作。首先,在 Windows 机器上解压缩 HMVC,提交到 SVN,然后将其拉到 CentOS 完全 BORKED。当我通过 WGET 将所有内容直接下载到 CentOS 并在服务器上进行设置时,它工作得很好!很奇怪,但至少这是一种解决方法——不需要对 PHP 或 Apache 进行调整,我认为在初始过程中会出现一行结束或某些东西被劫持。

其次,当我使用 HMVC 模块时,我不能使用核心系统自动加载器来加载数据库。我可以在三合会中手动加载它,也可以使用三合会的 config/autoload.php 文件自动加载,但如果我尝试,核心系统会抛出 500。这是一个怪癖,而且很严重,但我可以绕过它。

再次感谢大家的建议,这只是一个奇怪的问题。

谢恩

0 投票
1 回答
1588 浏览

codeigniter - Code Igniter 模块化扩展 Default_controller

我目前正在设计一个需要模块化的应用程序 - 为此我使用模块化扩展 - 用于代码点火器的 HMVC。

我正在尝试将 application/config/config.php 文件中定义的 default_controller 更改为默认为模块控制器,例如:users/controllers/login,但是无论我将什么放入 default_controller 设置中,我都会得到 404 页。

我尝试了以下方法无济于事:

正如你可以告诉我的模块目录在 application/modules/ 任何想法都非常感谢。

0 投票
1 回答
725 浏览

cookies - Kohana : 如何获取子请求 (HMVC) 的 cookie 更改

我使用以下代码在 HMVC 结构中执行子请求:

对“page1”的请求将通过以下代码向“page2”发出子请求:

“page2”中的执行将添加/更改 cookie 项的值

现在我需要在“Page1”中捕获cookie“new_var”的新值。那么我该怎么做呢?

PS:由于一些限制,我必须在 cookie 中设置“new_var”,因此将其放入会话不是一个答案。

==========更新=============

正如 zerkms 所建议的,我做了这样的事情:

“之前”和“之后”日志条目的结果都是空数组。:(

0 投票
1 回答
237 浏览

codeigniter - 代码点火器 2.0.2 中的控制器和模型名称不明确

以下是场景:我在 CodeIgniter 2.0.2 中集成了 HMVC。创建了一个具有以下结构的模块。

/应用程序/模块/登录

/应用程序/模块/登录/控制器

/application/modules/login/controllers/login.php

/application/modules/login/models/login.php

/application/modules/login/views/login_form.php

控制器/login.php 代码

/views/login_form.php

/models/login.php

输出: 出现错误,指示未定义的方法 Login::validate() 在控制器 Login 中创建 validate() 方法时,它可以工作。但它不应该发生..即使我正在加载一个名为 Login 的模型,为什么它指向 Login Controller。

任何人都可以帮助我。我的做法对吗?欢迎提出建议...

0 投票
3 回答
1049 浏览

model-view-controller - CodeIgniter - 模块化?

我正在构建几个需要类似“模块”的站点。例如,站点可能具有完全相同的登录系统、论坛等。

有没有办法我可以一次构建这些模块,然后将它们“放入”这些不同的站点?我看到的一些挑战:

  • 在各个站点中保持代码一致。对模块所做的任何更改都应传播到使用该模块的所有站点。我想我需要一种升级方式?
  • 数据库:这些功能需要作为更大应用程序的一部分工作。也许该模块需要在其各自站点中定义与其他表的关系。

我敢肯定还有更多的问题。我想我应该看看这个:https ://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home ,但我没有任何经验。

所以,我正在为这个想法寻找解决方案、建议或更多问题。

0 投票
1 回答
1003 浏览

codeigniter - html 中的 echo modules::run() 在 doctype 之前跳转

我正在使用 HMVC 并在视图中调用模块。然而,在某些情况下,模块出现在 Doctype 之前!这似乎是由于在页面中调用了多个模块引起的,但是当我完成此操作而没有发生这种情况时,我有实例。

我正在将要从控制器显示的模块解析到视图中,例如:

然后在视图中

这些 div 打印良好,并保持在应有的位置,但由于某种原因,模块在 doctype 之前跳转。我已经检查过整个页面中的所有 div 是否都已关闭,以干扰两个模块中的代码等,但仍然不知所措

我以前从来没有遇到过这种情况,有人可以帮忙吗?谢谢 :)