CodeIgniter安装和入门使用(一)[通俗易懂]

CodeIgniter安装和入门使用(一)

大家好,又见面了,我是全栈君。

CodeIgniter是个轻量级功能也强大的框架,适合做自己做小项目用,本文介绍CodeIgniter的安装和使用。
安装

官网链接http://codeigniter.org.cn/user_guide/installation/downloads.html ,最新的版本为3.0.2,直接git下载下来就ok。安装说明如下:

1,解压压缩包,然后将文件夹的内容全部上传到服务器上的web根目录,如/www/web/.

2,如何是本地的话,可以直接将文件夹改成自己项目的名字,放到自己的web根目录下,如mac上是

/Users/yanzi/Sites/,将解压缩后的文件夹改名为CodeIgniter;

3,找到application/config/config.php,设置网站根目录:(以下都是以部署在本地为例)

$config[‘base_url’] = ‘http://localhost/~yanzi/CodeIgniter/’;

如果有数据库的话,找到 application/config/database.php设置相关参数即可。

其他的基本不用设置了,但是由于CI是单入口的,即所有的访问都要先经过网站一级目录下的index.php.有几个参数还是要多注意下,打开根目录下的/Users/yanzi/Sites/CodeIgniter/index.php,找到以下几行:

$system_path = ‘system’;

$application_folder = ‘application’;

$view_folder = ”;

前两个基本不用动,view_folder是空,但是看以下代码可知:

  // The path to the "views" folder
        if ( ! is_dir($view_folder))
        {
            if ( ! empty($view_folder) && is_dir(APPPATH.$view_folder.DIRECTORY_SEPARATOR))
            {
                $view_folder = APPPATH.$view_folder;
            }
            elseif ( ! is_dir(APPPATH.'views'.DIRECTORY_SEPARATOR))
            {
                header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
                echo 'Your view folder path does not appear to be set correctly. Please open the following file and correct this: '.SELF;
                exit(3); // EXIT_CONFIG
            }
            else
            {
                $view_folder = APPPATH.'views';
            }
        }

默认的是

$view_folder = APPPATH.’views’;

经过上面步骤,浏览器输入:http://localhost/~yanzi/CodeIgniter/ (windows上输入自己对应的根目录即可)看到如下:
CodeIgniter安装和入门使用(一)[通俗易懂]

看到上图表示CodeIgniter安装ok。

下面简单看下,为什么会显示这个界面。

找到/Users/yanzi/Sites/CodeIgniter/application/config/routes.php,可以看到如下代码:

   $route['default_controller'] = 'welcome';
    $route['404_override'] = '';
    $route['translate_uri_dashes'] = FALSE;

即默认访问的Controller是welcome,也即/Users/yanzi/Sites/CodeIgniter/application/controllers/Welcome.php,

  

 <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
     
    class Welcome extends CI_Controller {
     
        /**
         * Index Page for this controller.
         *
         * Maps to the following URL
         *         http://example.com/index.php/welcome
         *    - or -
         *         http://example.com/index.php/welcome/index
         *    - or -
         * Since this controller is set as the default controller in
         * config/routes.php, it's displayed at http://example.com/
         *
         * So any other public methods not prefixed with an underscore will
         * map to /index.php/welcome/<method_name>
         * @see http://codeigniter.com/user_guide/general/urls.html
         */
        public function index()
        {
            $this->load->view('welcome_message');
    //        echo "HelloWorld!";
        }
    }

可以看到这个controller加载了welcome_message.php,在view文件夹下。

加载静态页面的demo

对于链接http://example.com/news/latest/10 我们可以猜测访问了news的控制器里的latest的方法,且查询id为10的内容。

即通常URL如下所示:http://example.com/[controller-class]/[controller-method]/[arguments]

下面介绍一个加载静态页面的demo.

1,在application/controllers/新建Pages.php, 这就是一个Controller,继承CI_Controller,代码如下:

<?php
     
    /**
     * Created by PhpStorm.
     * User: yanzi
     * Date: 15/10/21
     * Time: 下午8:20
     */
    class Pages extends CI_Controller
    {
        public function index($page = 'home')
        {
            
        }
    }

2,在views文件夹下新建templates文件夹,新建header.php:

    <html>
        <head>
            <title>CodeIgniter Tutorial</title>
        </head>
        <body>
     
            <h1><?php echo $title; ?></h1>

新建footer.php:

    <em>&copy; 2015</em>
    </body>
    </html>

注意:这两个问题都必须是php,不能是html!这是CI的模版决定的。

在views文件夹下新建pages文件夹,新建home.php about.php,这是具体的界面。

在views文件夹下新建pages文件夹,里面新建home.php about.php,这里就是最终你要访问的界面。依次在界面里写一句话:

<h1>This is Home page</h1>

<h1>This is About page</h1>  

3,接着是完善控制器里的view方法。

最终的控制器是:

 class Pages extends CI_Controller
    {
        public function view($page = 'home')
        {
            if(!file_exists(APPPATH. '/views/pages/' . $page . '.php')){
                show_404();
            }else{
                $data['title'] = ucfirst($page); // Capitalize the first letter
                $this->load->view('templates/header', $data);
                $this->load->view('pages/'.$page, $data);
                $this->load->view('templates/footer', $data);
            }
        }
    }

注意:这里将$page参数又赋给了data数组,对应key为title。这样在load->view()传给php时,又去读的$title参数。这个名字必须对应!

经过上述步骤,不需要配置任何东西就可以访问了。浏览器输入:

http://localhost/~yanzi/CodeIgniter/index.php/pages/view

可以看到默认参数为home的界面:

输入http://localhost/~yanzi/CodeIgniter/index.php/pages/view/about 将会看到about的界面。

注意:

1,url = site地址/index.php/控制器名字/方法名字/参数

2,当只输入url = site地址/index.php/控制器名字/默认访问的是控制器的index方法。如果函数名为index,则不用加方法名。但是当你传参数时还是要写上方法名字。

3,可以通过路由规则,简化url。

如找到config文件夹下的router.php,注释掉原来的加上这两句:

$route[‘default_controller’] = ‘pages/view’;
$route[‘(:any)’] = ‘pages/view/$1’;

则浏览器输入http://localhost/~yanzi/CodeIgniter/index.php/about  直接显示about界面内容,自动使用默认的pages控制器里的view方法,且将参数 作为$1传过去。

有以下几个经典的路由:

a,

$route[‘product/:num’] = ‘catalog/product_lookup’;

url 访问example.com/product/1/ 则自动触发的是catalog控制器。

b,

$route[‘journals’] = ‘blogs’; //重定向

c,

$route[‘blog/joe’] = ‘blogs/users/34’;

也是重定向。

关于路由这块可以参考:http://codeigniter.org.cn/user_guide/general/routing.html

参考:http://codeigniter.org.cn/user_guide/tutorial/static_pages.html
原文:https://blog.csdn.net/yanzi1225627/article/details/49233281

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112273.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • springboot集成Swagger2「建议收藏」

    springboot集成Swagger2「建议收藏」Swagger2简介 我们提供Restful接口的时候,API文档是尤为的重要,它承载着对接口的定义,描述等。它还是和API消费方沟通的重要工具。在实际情况中由于接口和文档存放的位置不同,我们很难及时的去维护文档。1.随项目自动生成强大RESTful API文档,减少工作量2.API文档与代码整合在一起,便于同步更新API说明3.页面测试功能来调试每个RESTful API…

    2022年6月13日
  • java反射 getMethod_java 反射使用 Class.getMethod 应注意

    java反射 getMethod_java 反射使用 Class.getMethod 应注意java反射使用Class.getMethod应注意记录下Methodmethod=clazz.getMethod(setMethodName,propertiesClass);如果使用该方法会不能获取以多态方式传入的参数会抛异常java.lang.NoSuchMethodException比如:publicclassStudent{privateStringname;…

    2022年9月23日
  • 怎么自定义服务器的404,如何自定义404页面

    怎么自定义服务器的404,如何自定义404页面404错误页面是WWW网站访问比较经常出现的错误。大家最熟悉的也是最常见的出错提示:404notfound。404页面就是当用户输入了错误的链接时,返回的页面。而默认的404错误页面呆板麻木,让访问者感觉很挫败,可能会直接离开您的网站。自定义404页面的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口离开。是增强用户体验的很好的做法。简而言之,有两点…

    2022年7月27日
  • 编程实现strstr函数「建议收藏」

    编程实现strstr函数「建议收藏」函数接口为:char*mystrstr(char*str1,char*str2)要求:在字符串str1中查找第一次出现字符串str2的位置,如果找到匹配的字符串,返回第一次匹配的指针,否则返回NULL。#include&lt;iostream&gt;usingnamespacestd;char*mystrstr(char*str1,char*str2){ char*p,*q;…

    2022年6月25日
  • VMware许可证过期_windows许可证过期什么原因

    VMware许可证过期_windows许可证过期什么原因激活密钥VMware2017v14.x永久许可证激活密钥FF31K-AHZD1-H8ETZ-8WWEZ-WUUVACV7T2-6WY5Q-48EWP-ZXY7X-QGUWD这表文章解决了大部分的常见问题,大家可以去看看http://www.zdfans.com/5928.html

    2022年9月14日
  • 双拼输入法快速入门

    双拼输入法快速入门转自少数派https://sspai.com/post/32809,作者@大唐废猫本文适合并仅适合以下人群观看:喜爱折腾熟练使用盲打对汉语拼音有敏感度对于输入速度有要求愿意慢慢看完这一大篇文章并坚持痛苦使用为什么要批判全拼输入?自从计算机发明之后,如何利用QWERTY键盘输入汉字便成为一大难题,在历经五笔、注音、双拼、手写等各类输入角逐后,全拼…

    2022年6月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号