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安装使用注意事项等总结 第一步:下载安装文件下载地址: ...
随机推荐
- Image Processing and Computer Vision_Review:Local Invariant Feature Detectors: A Survey——2007.11
翻译 局部不变特征探测器:一项调查 摘要 -在本次调查中,我们概述了不变兴趣点探测器,它们如何随着时间的推移而发展,它们如何工作,以及它们各自的优点和缺点.我们首先定义理想局部特征检测器的属性.接下来 ...
- 三次样条插值 cubic spline interpolation
什么是三次样条插值 插值(interpolation)是在已知部分数据节点(knots)的情况下,求解经过这些已知点的曲线, 然后根据得到的曲线进行未知位置点函数值预测的方法(未知点在上述已知点自变量 ...
- Flutter——GridView组件(网格列表组件)
GridView组件的常用参数: 名称 类型 说明 scrollDirection Axis 滚动方法 padding EdgeInsetsGeometry 内边距 resolve bool 组件反向 ...
- sklearn--模型的评价
sklearn.metrics 1.MSE(均方误差)和RMSE(均方根误差),以及score() lr.score(test_x,test_y)#越接近1越好,负的很差 from sklearn.m ...
- 并发编程: 生产消费模型、死锁与Rlock、线程、守护线程、信号量、锁
一.守护进程 二.互斥锁 三.抢票 四.进程间通讯 五.进程间通讯2 一.守护进程 """ 进程间通讯的另一种方式 使用queue queue 队列 队列的特点: 先进的 ...
- meta 中的属性viewport
粘贴自:https://blog.csdn.net/u012402190/article/details/70172371 <meta name="viewport" con ...
- Educational Codeforces Round 40 C. Matrix Walk( 思维)
Educational Codeforces Round 40 (Rated for Div. 2) C. Matrix Walk time limit per test 1 second memor ...
- Almost Acyclic Graph CodeForces - 915D (思维+拓扑排序判环)
Almost Acyclic Graph CodeForces - 915D time limit per test 1 second memory limit per test 256 megaby ...
- linux 的环境变量的配置文件
原文:https://www.cnblogs.com/yuemw/p/8081219.html ---------------------------------------------------- ...
- Force git to overwrite local files on pull 使用pull强制覆盖本地文件 转载自:http://snowdream.blog.51cto.com/3027865/1102441
How do I force an overwrite of local files on a git pull? I think this is the right way: $ git fetch ...