首页 / PHP / php-MVC应用程序中的面包屑逻辑
php-MVC应用程序中的面包屑逻辑
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-MVC应用程序中的面包屑逻辑,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2506字,纯文字阅读大概需要4分钟。
内容图文
![php-MVC应用程序中的面包屑逻辑](/upload/InfoBanner/zyjiaocheng/688/20f94d7f6e3946b2b51b0bb2baf4b423.jpg)
应该在哪里声明面包屑路径(换句话说,用MVC的哪个字母)?到目前为止,我一直在Controllers中声明它,但是最近我开始使用CakePHP,它全部由Views制作,这让我感到惊讶.
解决方法:
我将在这里给出答案,因为对于面包屑应该做和不应该做的事情有很多困惑.
该模型
模型是一个包含业务逻辑的层,该业务逻辑由域对象,数据映射器和服务组成.您可以阅读有关型号here的更多信息.
控制器
记住:胖模型,瘦控制器.您的控制器/方法是通过路由机制访问的.进入控制器后,您想要获取模型对象,执行模型中需要的任何逻辑,将其结果返回到控制器中的变量,然后使用它在视图中显示数据.
面包屑
话虽如此,面包屑需要不同的零件才能工作.让我们考虑一下:
>他们需要当前页面
>他们需要页面列表
>他们(可能)需要添加自定义“ class = current”
分解:
>在我的框架中,当前控制器也是页面名称(登录控制器映射到/ login).因此,我们已经有了当前页面.
>页面列表.
>如果页面的父/子关系直接绑定到数据模型,则在控制器中,从模型中拉出页面列表.因此,如果可以自动生成面包屑,请使用该模型.
>如果您使用的框架允许完全由用户选择创建面包屑,那么您只是在选择手动放入面包屑的内容.无论哪种方式,都可以在控制器中声明面包屑,如果需要从某个地方获取面包屑,请使用模型.
>最后,是“ class = current”.尽管您实际上不应该在视图中包含重要的“逻辑”,但是诸如循环之类的小东西或语句是否很标准.在这里,您将检查面包屑中与当前控制器名称相同的标题(作为变量传递给视图),如果找到,则添加class = current.
代码示例
注意:未经测试
/**
* So we're in the home controller, and index action
*
* @route localhost/home or localhost/home/index
* (depending on .htaccess, routing mechanism etc)
*/
class Home extends Controller
{
public function index()
{
// Get current class name, so we have the current page
$class = __CLASS__;
// Let's say the page heirachy is tied to the model, so get pages for current method, or however you want to implement it
$pages = $model->getPages($class);
// So the TEMPLATE handles the breadcrumbs creation, and the controller passes it the data that it needs, retrieved from the model
// (new Template) is PHP 5.4's constructor dereferencing, also included is some lovely method chaining
// setBreadcrumbs() would assign variables to the view
// Render would do just that
(new Template)->setBreadcrumbs($currentPage, $pages)->render();
}
}
现在,视图…注意,我使用PHP 5.4,因此可以使用短回声…
<body>
<?php foreach($breadcrumbs as $b) { ?>
<li <?=($b['current'])?'class="current"':''?>>
<a href="<?=$b['page']['url']?>">
<?=$b['page']['title']?>
</a>
</li>
<?php } ?>
</body>
这就是我要做的.其中一些取决于个人喜好,但是我希望这显示了一种实现方法,并且至少有用.
实际上,我碰到了这个搜索“ php mvc Breadcrumbs”的答案,写出我的大脑确实也帮助我弄清楚了这一点.那谢谢啦!
内容总结
以上是互联网集市为您收集整理的php-MVC应用程序中的面包屑逻辑全部内容,希望文章能够帮你解决php-MVC应用程序中的面包屑逻辑所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。