• 第一天的CI笔记


    1 CI不区分大小写
    2. http://xxx.com/index/[控制器名称]/[控制器里面方法的确名称]/[传入方法的参数
    ]/

    3. 控制器及控制器类名称与文件名称一致, 继承 CI_Controller 类,放在controller
    文件里面

    4. 控制器里的方法用数组传,模板放在 views里面,获取控制器方法中国传来的值时,用
    传值时的 "$"+数组下标作变量名
    5. 在方法里面加载模板时,用 $this->load->view("模板名称"[,参数])

    6. 在 models 文件夹建立相应该的模型,文件格式为:名称_model.php(一般用表名方
    便),模型类名与文件名一致,用 public function __construct()
    {
    $this->load->database();
    }
    加载数据库和连接数据库句柄
    7. 在控制器文件中引入模型时,可以在控制器里面用构造函数引入,如 $this->load-
    >model("模型类名")

    8.所有的 php 文件 应该省略结束 ?>,在结束处加上注释即可
    9.类名的首字母应该大字,如果名称由多个词组成,词之间要用下划线,类中所有其他方
    法的名称应该完全小写,并且名称能明确指明这个函数的用途!

    10. 变量的命名规则与方法的命名规则十分相似。就是说,变量名应该只包含小写字母
    ,用下划线分隔,并且能适当地指明变量的用途和内容。
    11.常量命名除了要全部用大写外,其他的规则都和变量相同。

    12.TRUE, FALSE, 和 NULL 关键字应该总是完全大写的。
    13.|| 有时让人底气不足,因为在某些输出设备上它不够清晰(可能看起来像数字11).
    && 要优先于 AND 不过两者都可以接受, 在 ! 的前后都要加一个空格。

    14.MySQL 的关键字一直大写: SELECT, INSERT, UPDATE, WHERE, AS, JOIN, ON, IN等

    15.可能的话,请提供函数的默认参数,这样可以阻止诸如错误的调用的 PHP 错误,同
    时可以获取公用的返回值,节约很多行代码。

    16.为了能正确使用 base_url(); site_url() 函数提供的地址,在
    application/config/autoload.php 文件中找到以下语句:
    /*
    | -------------------------------------------------------------------
    |  Auto-load Helper Files
    | -------------------------------------------------------------------
    | Prototype:
    |
    |    $autoload['helper'] = array('url', 'file');
    */

    $autoload['helper'] = array();
    修改为
    $autoload['helper'] = array('url'); 

    ----------------------------------------------

    17.修改默认的控制器名称,如CI默认的名称是 welcome,可到
    application/config/routes.php 中文件修改
    $route['default_controller'] = "home";
    -----------------------

    是否要开启伪静态
        这样处理方便:
         1.确定 apache 支持 rewrite
         2.在index.php 同级目录下建 .htaccess文件,内容如下

    RewriteEngine on   
    RewriteCond $1 !^(index.php|images|robots.txt)   
    RewriteRule ^(.*)$ /根目录/index.php/$1 [L]

    其中上面的根目录如: http://localhost/ci/index.php,就把根目录换成 ci即可

    3.application/config.php 文件下的
    $config['index_page'] = 'index.php';
    改为
    $config['index_page'] = '';

    ---------------------------------------

    数据库问题(防重名带来问题)
        仿zencart cms 的做法,在application/config/下建立数据库表名常量文件,如 my_database_table.php,写上内容
    define('MYPREFIX', ''); // 定义前缀
    define('LIN', MYPREFIX.'lin'); // 定义数据表名
    define('LIN'1, MYPREFIX.'lin1'); // 定义数据表名
    当在模型中操作数据表时,可用上面定义的常名表示数据表名

    /* 不建议用这种包含这个数据表文件
    同时在system/core/CodeIgniter.php 文件中包含数据表名文件,如:
    // bof 包含 数据库表名的定义文件
    require(APPPATH.'config/my_database_table.php');
    */

    /*  建议用这种方式来保存数据表定义文件 */

    增加了tablename.php数据表格文件,位于 application/config/tablename.php

    在index.php 中增加了 require_once(APPPATH.'config/tablename.php');



    // eof 包含 数据库表名的定义文件
    -----------------------------------

    session 会话如果要保存在数据库的话,操作如下:
    参考本博客中定义的 session 保存方法

    登录信息保存为 数据库中,增加了 sessions 数据表

    增加了 Sess.php 文件,位于system/core/Sess.php

    增加了tablename.php数据表格文件,位于 app/config/tablename.php

    在index.php 中增加了 require_once(APPPATH.'config/tablename.php');

    在system/core/CodeIgniter.php 增加了 require_once(BASEPATH.'core/Sess.php');

    -------------------------------------------------------------------

    关于自己制作验证码:
    参考本博客地址:http://www.cnblogs.com/lin3615/p/3543537.html
    制作验证码文件,如命名为 yzm.php
    把 yzm.php 放在相应的目录,如根目录
    在用到验证码的页面加上(路径一定是指定 yzm.php 文件所在的位置)
    <img style="cursor:pointer" title="刷新验证码" id="linRefresh" border='0' src='<?php echo base_url();?>yzm.php'
    onclick="document.getElementById('linRefresh').src='<?php echo base_url();?>yzm.php?t='+Math.random()"/>

    ==========================

    引入 librarie/helper中的类及文件

    加载自定义的类时,可放在 application/libraries/
    如定义 Test.php

    <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    class CI_Test
    {
       function __construct(){}
       funtion tmethod(){}
    }

    当要引入调用时,在控制器中这样引用
    $this->load->library('test');
    调用里面的方法时:
    $this->test->tmethod();即可

    加载自定义的函数时,可在 application/helpers/中定义
    如 help_helper.php
    <?php
    if ( ! defined('BASEPATH')) exit('No direct script access allowed');
      function ok()
     {
        echo 'hi, lin3615';    
     }
    在控制器中引用:
    $this->load->helper('help'); //就是包含这个文件而已,然后就可以直接调用其方法了
    ok(); // 输出 hi,lin3615

    --------------------

    其实
    $this->load->model($model_name)
    $this->load->library($library_name)
    都是引入相应的类文件,并且实例化,返回的为相应的对象,

    $this->load->model('mymodel'); // 返回的对象为:$this->mymodel
    $this->load->library('mylibrary'); // 返回的对象为:$this->mylibray

    $this->load->helper();
    引入相关的文件
    $this->load->helper('help'); // 引入 help_helper.php 文件

  • 相关阅读:
    Haskell 差点儿无痛苦上手指南
    HighCharts 具体使用及API文档说明
    又一道软通动力7K月薪面试题——银行业务调度系统
    [AngularJS + Webpack] require directives
    [AngularJS + Webpack] Using Webpack for angularjs
    [Whole Web] [AngularJS] Localize your AngularJS Application with angular-localization
    [React] React Fundamentals: Mixins
    [React] React Fundamentals: Component Lifecycle
    [React ] React Fundamentals: Component Lifecycle
    [React] React Fundamentals: Component Lifecycle
  • 原文地址:https://www.cnblogs.com/lin3615/p/3611951.html
Copyright © 2020-2023  润新知