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安装使用注意事项等总结 第一步:下载安装文件下载地址: ...
随机推荐
- Python中,标识符用法
Python中,标识符 在Python中,所有标识符都可以包括英文.数字和下划线(),但不能包括数字.python中的标识符区分大小写.这是知识的背景.但通常,Python成为以下划线开头的标识符的习 ...
- CSS精灵技术(sprite)
CSS技术的使用场景:有效的减少了服务器接收和发送请求的次数,css精灵是一种出来网页背景图像的方式,将一个页面设计到的所有零星背景图集中到一张大图中去,然后将大图应用于网页 .通过backgroun ...
- RabbitMQ的持久化
RabbitMQ的持久化主要体现在三个方面,即交换机持久化,队列持久化及消息持久化 注意,因公司使用php-amqplib来实现RabbitMQ,故之后举例说明的代码均使用的php-amqplib ...
- gulp 实现sass自动化 ,监听同步
实现功能 监听scss文件 sass自动化 准备条件 1 .安装gulp npm init ---->一直enter,会在当前目录下生成一个package.json文件,记录安装的依赖模块 ...
- Django的配置模板路径
Django的配置模板路径 找到settings.py 配置静态目录: 注:创建静态文件名就用static 不要用别的. 两个函数. return redirect ('http//:www.b ...
- LNMP安装与配置之Nginx
Nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ramb ...
- string::crbegin string::crend
const_reverse_iterator crbegin() const noexcept;功能:crbegin是最后一个字符,crend第一个字符的前一个.迭代器向左移动是“+”,向右移动是“- ...
- kettle 数据抽取时会出现 无法插入NULL
kettle 数据抽取时会出现 无法插入NULL,其实是空字符串,原因是kettle默认不区分空字符串和NULL. 解决办法: 修改kettle.properties 文件:
- duilib学习领悟(1)
学习duilib已经有一段时间,一直没时间写总结,今天得出空来,写写心得体会! 由于本人知识有限,若有错误地方,望批评指正.多谢.! 初识duilib 刚开始接触duilib的时候,觉的他好神奇,整个 ...
- hmmlearn 安装笔记
hmmlearn是在python上实现隐马可夫模型的一个组件包,原先是在sklearn中的,后来被弃用而单独分离出来. 首先安装sklearn,最好下载setup.py的安装包用命令行安装,因为安装h ...