我现在在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();
}
}
?>
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
祝你好运,快乐编码!
更新!