我正在创建一个站点,该站点将有很多需要添加到路由文件中的路由(800+) - 显然我不想将这些路由一一手动添加到路由配置文件中。
任何人都可以建议最佳实践,让我的路线自动从数据库加载。是否有合适的库/帮助程序可以执行此任务,适用于 2.x 版本
例如..
$route['apple'] = 'brands/index';
$route['blackberry'] = 'brands/index';
$route['htc'] = 'brands/index';
$route['samsung'] = 'brands/index';
这些只是我要添加到路线中的几个品牌 - 但有数百个品牌,所以我希望从数据库加载这些品牌,而不是手动输入这些品牌。另外 - 这种方法会产生任何影响吗从数据库加载它们的现场性能?
我正在使用 Codeigniter v2.1.3
如果您要通过数据库调用不断查询数据库(在每个页面加载时)application/config/routes.php
文件然后我想会对性能产生很大的影响。
我建议(以及我之前这样做的方式)是将以下行添加到您的routes.php
文件并将所有路线保存到routes.php
文件在cache folder.
require_once APPPATH . 'cache/routes.php';
然后,您可以使用类似于以下的函数将所有结果写入缓存文件(使用 CI 的文件助手):
public function save_routes() {
$routes = $this->routes_model->get_all_routes();
$data = array();
if (!empty($routes )) {
$data[] = '<?php if ( ! defined(\'BASEPATH\')) exit(\'No direct script access allowed\');';
foreach ($routes as $route) {
$data[] = '$route[\'' . $route['uri'] . '\'] = \'' . $route['controller'] . '/' . $route['action'] . '\';';
}
$output = implode("\n", $data);
write_file(APPPATH . 'cache/routes.php', $output);
}
}
如果您要在管理区域中添加新路由,只需在每次提交新路由时运行上述函数,它将重新生成您的路由缓存文件。
此方法将您的路线保留在application/config/routes.php
完好无损,但允许您将新路由写入缓存文件,而不会严重影响站点的性能。
希望有帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)