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安装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>© 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
CodeIgniter安装和入门使用(一)的更多相关文章
- Apache Hadoop2.x 边安装边入门
完整PDF版本:<Apache Hadoop2.x边安装边入门> 目录 第一部分:Linux环境安装 第一步.配置Vmware NAT网络 一. Vmware网络模式介绍 二. NAT模式 ...
- bower安装使用入门详情
bower安装使用入门详情 bower自定义安装:安装bower需要先安装node,npm,git全局安装bower,命令:npm install -g bower进入项目目录下,新建文件1.tx ...
- [Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍
前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更 ...
- 虚拟光驱 DAEMON Tools Lite ——安装与入门
DAEMON Tools Lite 是什么?它不仅仅是虚拟光驱.是的,你可以使用它制作.加载光盘映像,但是 DAEMON Tools 产品那么多,Lite版与其他版本究竟有什么不同呢?或者说,是什么让 ...
- Python 3.6.3 官网 下载 安装 测试 入门教程 (windows)
1. 官网下载 Python 3.6.3 访问 Python 官网 https://www.python.org/ 点击 Downloads => Python 3.6.3 下载 Python ...
- 八:Lombok 安装、入门 - 消除冗长的 java 代码
Lombok 安装.入门 - 消除冗长的 java 代码 前言: 逛开源社区的时候无意发现的,用了一段时间,觉得还可以,特此推荐一下. lombok 提供了简单的注解的形式来帮助我们简化消 ...
- robotframework安装及入门指南
将很久之前自己在本地记录的一些笔记发表到随笔来,希望能够帮到一些童鞋~ robotframework安装及入门指南 本文主要介绍robotframework在windows环境的安装过程! 安装步骤 ...
- pytest_01_安装和入门
目录 pytest 安装与入门 1.pip install -U pytest 2.创建一个test01.py的文件 3.在该目录下执行pytest(venv) 4.执行多个,新建一个py文件 tes ...
- windows下nodejs express安装及入门网站,视频资料,开源项目介绍
windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件下载地址: ...
随机推荐
- 用Leangoo泳道完美实现Scrum任务看板
转自:https://www.leangoo.com/9568.html 在敏捷开发的实践当中,通过可视化的任务看板来实现团队协同和透明化管理是必不可少的一个实践.通过可视化的任务看板我们可以达到如下 ...
- jEasyUI 菜单与按钮
jQuery EasyUI 菜单与按钮 – 创建简单的菜单 <div id="mm" class="easyui-menu" style="wi ...
- opencv3.0中contrib模块的添加+实现SIFT/SURF算法
平台:win10 x64 +VS 2015专业版 +opencv-3.x.+CMake+Anaconda3(python3.7.0) Issue说明:Opencv3.0版本已经发布了有一段时间,在这段 ...
- PPP协议解析一
转:http://blog.csdn.net/yangzheng_yz/article/details/11526475 在网上搜集了一些有关PPP的资料,整理了一下,不能说是原创,仅供大家学习研究. ...
- .NET SignalR中长连接与HUB连接的使用方式以及区别
1 using Microsoft.AspNet.SignalR; 2 using System; 3 using System.Collections.Generic; 4 using System ...
- java——double数据精度问题
代码:使用BigDecimal来代替double public class BigDecimalUtil { public static BigDecimal add(double v1,double ...
- Python 获得程序 exe 的版本号
Python 获得程序 exe 的版本号 python中需要安装 pywin32 包 # based on http://stackoverflow.com/questions/580924/pyth ...
- 内核对象&句柄&泄漏&检测
今天看到这个问题如何评价王垠的 <讨厌的 C# IDisposable 接口>? - 王垠(人物),答案被歪到windows 内核对象和句柄,答案中谈的太浅显而且有误.翻出陈年老文章(此文 ...
- UVALive 6862——结论题&&水题
题目 链接 题意:求满足$0 \leq x \leq y \leq z \leq m$且$x^j + y^j = z^j, \ j=2 \cdots n$的三元组的对数 分析 由费马大定理:整数$n ...
- 错误信息:[ERR] Sorry, can't connect to node 10.211.55.8:7001
错误信息: [root@centos-linux redis-cluster]# ./redis-trib.rb create --replicas 1 10.211.55.8:7001 10.211 ...