gpt4 book ai didi

php - CakePHP - 我如何定义到没有任何关联 Controller 的非 cakephp 文件的路由?

转载 作者:可可西里 更新时间:2023-10-31 23:26:17 25 4
gpt4 key购买 nike

我现在在 CakePHP 工作。我想知道如何定义到没有任何关联 Controller 的非 cakephp 文件的路由?

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

最佳答案

听起来您希望能够在您的 cakephp 应用程序中使用 sitemap.php 中的功能。将其包含在 cakephp 中的最佳方法是将其设置为供应商。请按照以下步骤操作:

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

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

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

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'));

这将处理 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'));

然后,当您访问该 url 时:

http://mysite/sitemap.xml

它将路由到:

http://mysite/site_maps/show_map

更多路由信息可以访问:http://book.cakephp.org/view/542/Defining-Routes

祝你好运,编码愉快!

已更新!

关于php - CakePHP - 我如何定义到没有任何关联 Controller 的非 cakephp 文件的路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2409733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com