我搜索了HMVC并知道它是什么以及它的优点。模块化:减少应用程序不同部分之间的依赖性。组织:为每个相关的三元组创建一个文件夹可以减轻工作量。可重用性:根据设计的本质,几乎每一段代码都可以轻松重用。可扩展性:在不牺牲易维护性的情况下使应用程序更具可扩展性。但只是在没有HMVC的Codeigniter中,可以创建Controller的不同子文件夹以及多个模型文件夹和多个View文件夹。我不明白使用HMVC的确切原因。 最佳答案 我在https://bitbucket.org/wiredesignz/codeigniter-modular
我已经看了一下:http://r.je/mvc-in-php.html根据它,我将有以下基本代码://InstanceofaModel$model=newModel();//ControllerandViewgettheModel$controller=newController($model);$view=newView($model);//Controllerchange/workwiththeModel$controller->doSomeAction();//DisplaythefinalModel$view->display();我已经在领域驱动设计中实现了我的应用程序。但是
我想弄清楚从路由器类中启动Controller是否是不好的做法。从我所能找到的一点点,有人说路由器不应该处理实例化Controller。下面是我如何开始开发我的路由器类。示例(注意为了打字我省略了很多。)classRouter{private$url,$controller;publicfunction__construct($url){$this->url=$url;$this->map();/*mapsurltocontrollerandaction*//*dispatchcontroller*/$this->dispatch();}privatefunctiondispatch(
我有一个带有域对象和数据映射器的WebMVC应用程序。数据映射器的类方法包含所有数据库查询逻辑。我试图避免镜像任何数据库结构,因此,在构建sql语句时实现最大的灵active。因此,原则上,我尽量不使用任何ORM或ActiveRecord结构/模式。举个例子:通常,我可以有一个抽象类AbstractDataMapper由所有特定数据映射器类继承-如UserDataMapper类。然后我可以在AbstractDataMapper中定义一个findById()方法,通过给定的id值,例如用户身份。但这意味着我总是从单个表中获取记录,而不可能使用任何左连接来从对应于给定id-用户id的其他一
我尝试过很多PHPMVC框架,我注意到在很多框架中你可以做这样的事情:$this->security->encodeForHTML();所以,基本上有一个类Security,它包含一个方法encodeForHTML()。这个Security类不是单例吗?这种“内部”单例类有特定的名称吗?因为还有其他类不是单例:$form=newForm;在这种情况下,您可以创建任意数量的表单。我理解这一点,初始化许多安全类显然没有意义,但我想知道,这些类是否有名称(单例和非单例除外)?一个人建议对那些可以创建的类使用单词“插件”,对那些构建在框架中的类使用“库”。这有意义吗?感谢您的回复!
我很确定我的教授会问我为什么选择在我的Web应用程序中使用MVC。说实话,我是MVC的新手。我读到了它,我正在使用它构建一个博客应用程序,我认为以这种方式解决问题是非常合乎逻辑的。但是为什么?O_O我画了一个空白。如何比构建N层应用程序更适合? 最佳答案 嗯,基本上:separationofconcerns在使用层面,而非物理层面。引用PoEAAonMVCMVCsplitsuserinterfaceinteractionintothreedistinctroles.使用MVC,您将表示(V,C)与域逻辑(M)分开,并且还将UI行为(
应该在哪里声明面包屑路径(换句话说,在MVC的哪个字母中)?到目前为止,我一直在Controllers中声明它,但最近我开始使用CakePHP,它全部在Views中制作,这让我感到惊讶。 最佳答案 我要在这里抛出一个答案,因为对于面包屑应该做什么和不应该做什么有很多困惑。模型模型是一个层,包含您的业务逻辑,由域对象、数据映射器和服务组成。您可以阅读有关模型的更多信息here.Controller记住:胖模型,瘦Controller。您的Controller/方法是从您的路由机制访问的。进入Controller后,您想要获取模型对象,
我已经使用Magento和PHPCodeIgniterMVC大约4个月了。我在理解在哪里设置CodeIgniter和Magento的验证逻辑时遇到了一个特殊的问题,只有当我考虑遵循MVC架构的真实本质并以非常正确的语义方式时。首先,我将从Magento开始:-假设我在Magento中有一个“Assignment”模块,它与玩家和锦标赛有关。我有3个操作方法,在这个“Assignment”模块的Controller中,我需要在其中检查和验证以下内容:-玩家编号锦标赛编号“Assignment”模块的Block类以及3个操作方法中也需要此验证。所以我的问题是我应该在这个模块的Control
我应该注意到我正在使用ZendFramework。虽然这不应该影响具体的答案,但这确实意味着我可以在几个地方实现我的以下方法(Action助手、Controller等)。问题是我有buildOptions()和parseOptions()方法,它们根据“标签”获取$_GET/$_POST变量并构建规则,然后在选择查询中使用这些规则。一个例子是?modelSort=id&modelOrder=asc上面的'model'显然与特定的模型相关,它用作'标签'这样我就可以例如也有model2Sort和model2Order所以参数之间没有冲突。但是,我现在遇到的麻烦是这些方法应该去哪里呢?他们
我在PHP中遇到了__autoload函数,想将它用于我的MVC文件夹结构。功能本身很简单,但是如何在某种命名后实现动态文件夹扫描,请看示例:-application--controller--models---entities----house---factories----houseFactory--views-library-public正如您可能认识到它非常接近于基于zend框架或其他框架-正如我来自那些,但是我想开发一个没有框架的网站并且刚开始编写bootsrap文件。也许有人可以帮我自动加载-我认为-高级用法。我的类名会像模型_实体_房子要么模型_工厂_房屋工厂witch可