CI基础(二)

  • 重映射方法:_remap()
    CI中的url中的两端通常是控制器名和方法名,如果我们想改变这种规则就可以使用_reamp方法;该方法可以将ur中的方法名当做参数传入,进行逻辑处理后在确定调用哪个方法;可以实现验证用户登录类型等功能;
//如果访问add1()方法就让其访问edit()方法,否则访问原有方法
public function _remap($method)
    {
        if ($method === 'add1')
        {
            $this->edit();
        }
        else
        {
            $this->$method();
        }
    }
  • URL辅助函数
    • site_url():包含了index.php,以及在配置文件中设置的url_suffix(url后缀,如:.html)参数,直接在括号内添加控制器名/方法名/参数,添加的参数可以是字符串,也可以是数组,将控制器名,方法名,参数添加到数组里进行传递;
    • base_url():和site_url()相同,只是不包含index.php和url_suffix参数;
    • current_url():返回当前页面完整的url;
    • uri_string():返回包含该函数的页面的 URI 分段(只返回控制器名/方法名/参数)
    • index_page():返回配置文件中的index_page参数;
    • anchor($uri = '', $title = '', $attributes = ''):url链接,三个参数分别是url地址,链接文本和链接属性(字符串或数组)
  • 视图文件中创建链接:anchor()
//点击‘跳转’会直接跳转到前面写的url

  • 我们可以对CI原生的辅助函数和类库进行扩展、替换,还可以创建自定义的辅助函数和类库,但是数据库类不能被扩展和替换。如果在加载类库时,通过第二参数传递一个数组,则该数组会被传递到构造函数中;如果出入参数,你写的构造函数也必须加上参数。
  • 通常情况下我们通过$this调用CI中可用的方法,但是$this只能在控制器、模型和视图中使用,如果你想在自己定义的类中使用CodeIgniter类,就必须使用以下方法,该方法是通过引用来传递,并不是创建一个新的对象。
//自定义类中必须用这种方法使用CodeIgniter
$CI =& get_instance();
$CI->load->helper('url');
  • 自动加载:
    在application/config/autoload.php中配置,支持自动加载的如下:

    • library核心类库
    • helpers辅助函数
    • config用户自定义配置文件
    • system/language下的语言文件
    • models模型类
  • 设置自己的路由规则
    在config/route.php中配置自己的路由规则:

$route['aaa'] = 'member/add1';

配置完成后,程序中所有用到member/add1路由的地方都可以使用aaa替代,同时通过member/add1也可以继续访问,这样隐藏了自己真实的url;

  • 页面缓存
    将下面一段代码放在方法的任意一个地方,页面数据就会进行缓存;
//$n便是页面缓存n分钟
$this->output->cache($n);

如果想要删除缓存,可以直接删除方法的这一行代码,但是删除代码后不会立即生效,必须等到缓存过期后才会生效;也可以手动添加代码进行删除:

$this->output->delete_cache();
  • 程序分析器
$this->output->enable_profiler(TRUE);

直接在方法最后加上该行代码,当调用此方法时,就会在页面底部显示分析报告;


CI基础(二)_第1张图片
image.png
  • 通过CLI方式访问项目
    首先打开终端,cd到项目所在目录,输入$ php index.php login index,会和浏览器打开一样,如:在controllers新建login类,添加方法message,方法内容为

此时输入命令后会直接显示”Hello Word!“

你可能感兴趣的:(CI基础(二))