微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CakePHP – 如何定义到没有与之关联的任何控制器的非cakephp文件的路由?

我现在在CakePHP工作.我想知道如何定义一个非cakePHP文件的路由,该文件没有任何与之关联的控制器?

为方便起见,我已将此文件(sitemap.PHP)放在webroot文件夹中.现在我需要以某种方式路由它!

解决方法:

听起来您希望能够在cakePHP应用程序中使用sitemap.PHP中的功能.将其包含在cakePHP中的赌注方式是将其设置为供应商.跟着这些步骤:

1-将文件放在app / vendor文件夹中.
2-要在控制器(或其他任何地方)中使用该文件,请添加

App::import('vendor','sitemap');

如果它只是一个包含函数列表的文件,您现在可以像在任何其他PHP文件中一样调用函数.因此,如果您有一个名为show_links()的函数,则在导入供应商/站点地图的控制器中,您只需输入:

show_links();

如果它是一个类,那么你将需要实例化该类并像使用其他任何地方一样使用它:

App::import('vendor','sitemap');
$sitemap = new Sitemap;
$sitemap->show_links();

因此,现在您已准备好设置路由以在config / routes.PHP文件中包含站点地图功能

Router::connect('/sitemap.xml', array('controller' => 'YOUR_CONTROLLER', 'action' => 'YOUR_ACTION'));

这将处理操作中包含的代码序列,然后播放sitemap.PHP文件.

简而言之,你会看到类似这样的东西:

<?PHP
class SiteMapController extends AppController
{
  var $name = 'Tests';
  function show_map()
  {
    App::import('vendor','sitemap');
    $sitemap = new Sitemap;
    $sitemap->show_links();
  }
}
?>

在config / routes.PHP中你会添加

Router::connect('/sitemap.xml', array('controller' => 'site_maps', 'action' => 'show_map'));

然后,当您访问网址时:

http://mysite/sitemap.xml

它将路由到:

http://mysite/site_maps/show_map

有关路由的更多信息,请访问:http://book.cakephp.org/view/542/Defining-Routes

祝你好运,快乐编码!

更新!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐