我想弄清楚从路由器类中启动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可
几年来,我一直在为PHP开发我自己的轻量级MVC框架。我可能会在某个时候根据开源许可发布。这是我用来处理路由的方法:functionroutes($routes,$uriPath){//LoopthrougheveryrouteandcompareitwiththeURIforeach($routesas$route=>$actualPage){//Createaroutewithallidentifiersreplacedwith([^/]+)regexsyntax//E.g.$route_regex=shop-please/([^/]+)/moo(originallyshop-pl
我正在开发一个PHP应用程序作为练习,我想知道在哪里创建session会更正确。我在Controller中收到登录数据,然后我询问我的模型该用户是否存在以及密码是否匹配。这个Controller应该处理session创建吗?我只是找不到一个好的答案。 最佳答案 session处理程序可以是根据需要注入(inject)到任何Controller中的组件,也可以是应用程序范围的单例。我会在中型应用程序上采用第一种方法,并在依赖性较低的微框架中使用后者。 关于php-在MVC架构中,哪里最适合