|
初学CI。 看了一个下午看得内分泌失调。
这里的路由规则虽然有通配符。 但是好像并不能提供真正的便利。
因为无法分辨是get参数还是控制器还是函数。 最终不得已需要给每个控制器 函数写路由规则。
初学愚见。 求解:
多国语的参数 我要将它前置在控制器前。 路由规则要怎么写?。。
另外多国语, 这里使用 每次引用一个语言文件即将 $lang数组合并起来。 这里还需要避免键值相同被后来者给覆盖。 所以官方推荐使用前缀
我觉得我朋友写的一个方法还更好用
/**
*
* 这里与CI默认的语言相互独立
* 使用方法例:self::t('index','this is a test.');
* 翻译文件为返回一个二维数组的php文件
* @param $filename 翻译文件名称,不包涵".php"
* @param $key 要返回的数组中的键名
* @param $lang 语言的get参数
* @param $directory 翻译文件放置的目录
*/
public static function t($filename, $key, $lang = 'lang', $directory = 'languagex')
{
if(!isset($_GET[$lang]))
return $key;
//语言文件只读取application下的$directory目录
if(!file_exists($langPath = dirname(BASEPATH). '/'.APPPATH. $directory))
{
@mkdir($langPath);
return $key;
}
$array = array();
$file = $langPath. '/'.$_GET[$lang].'/'.$filename. '.php';
if(file_exists($file))
{
$array = require($file);
return isset($array[$key]) ? $array[$key] : $key;
}else{
return $key;
}
}
也是愚见。。。
很想学好CI。 但是目前来看。 它轻量级, 速度快。 却要付出很多代价。 开发起来好像不方便。
求指点 |
|