CI下载与安装_基础配置_MVC
CI:CodeIgniter -- 由Ellislab公司的CEORickEllis开发,是一个简单快速的PHP MVC框架。
=============下载和安装================
地址:http://codeigniter.org.cn/download
版本:目前的稳定版本为3.X
在线手册:http://codeigniter.org.cn/user_guide/general/welcome.html
=============目录结构==================
|-application:应用文件夹
|- config:配置文件
|- cache:缓存文件
|- MVC:...
|- helpers:辅助函数
|- libraries:类库
|-...
|
|-system:系统文件夹
|-user_guide:用户手册(可以删除)
|-index.php:CI的入口文件
* 唯一一个让浏览器直接请求的文件
* 在入口文件中定义开发环境
* 定义项目目录,视图目录等信息
* 加载框架的入口文件
============默认路由===================
路由:一个指定访问路径的字符串
* 所有请求都是通过入口文件开始,通过URL传递过来的信息去找到对应的控制器和操作,再由控制器去找到对应的视图文件(MVC)
* 默认路由是在appliction/config/routes.php中
* 默认指向的控制器是Welcome
* default_controller:默认控制器
404_override:当发生404错误时的操作
translate_uri_dashes:是否解析-为_
============控制器===================
Controller的建立:
1 找到application/controllers,新建自己的controller页面(.php后缀)
2 类名同文件名,类名首字母大写
3 继承CI_Controller,确保你的控制器扩展自父控制器类
4 保留字的问题(手册-常规主题-保留名称)
5 如果重写构造方法,一定要调用父类的构造方法(parent::__construct())
* 访问的时候url地址不分大小写,index()方法默认加载
============配置文件=================
CI的配置文件:application/config目录下
autoload.php:自动加载配置信息
config.php:项目配置文件
constants.php:项目中的常量
database.php:数据库配置信息
doctypes.php:文档类型对应的头部信息
foreign_chars:外国文字对应
hooks.php:钩子配置
memcached:memcached的配置信息
migration.php:文件对应的http类型
routes.php:路由配置文件
smileys.php:特殊字符对应的图片
user_agents.php:用户的浏览器对应的系统
profiler.php:程序分析的配置
-----
* CI在项目运行时会自动加载config.php,在代码中可以使用config_item()函数获取配置
* CI中提供了config类来获取配置信息:$this->config->item("配置信息")
* 可以在代码中动态设置配置信息:$this->config->item("配置项","值")
=======URL路由规则和自定义路由========
CI中URL的处理(pathinfo):
http://localhost/work/index.php/控制器名/方法名/参数1/参数2....
默认控制器:welcome
默认方法:index
*修改默认控制器:application-config-routes.php(路由管理文件)
-----
自定义URI -- 在配置文件中指定自定义路由
1.在routes.php中添加规则
例:$route["welcome/25"] = "welcome/index/25" -- url访问时:IP/工程名/index.php/welcome/25
** 键所对应的URI才是真正需要访问的路径
2.使用通配符进行值匹配 -- :num 用于匹配所有数字
-- :any 用于匹配任意字符
例:$route["welcome/(:num)"] = "welcome/index/$1";
3.使用正则表达式:
例:$route["welcome/(\d+)"] = "welcome/index/$1"
4.URI中使用回调函数:
$route["welcome/index/(\d+)"] = function($id){
return "welcome/index/".$id;
}
=================URL辅助函数========================================
1.要使用URL的辅助函数,需要先加载URL帮助类:$this->load->helper("url");
2.常用函数:site_url(路由):生成url地址,通过指定的路由和配置信息
base_url():生成URL地址
current_url():返回当前完整URL
uri_string():返回URI分段内容(路由)
除了每个方法中单独配置,可以设置自动加载:
application/config/autoload.php
去搜索键为helper的数组配置,把帮助函数写到数组值中即可
=================视图======================
* CI默认使用php文件来作为视图文件
* 在application/views目录下创建视图文件,可以创建子目录
载入视图:
加载视图:$this->load->view("页面名")
注意:
1 视图是php文件则页面名直接写,可以不用带后缀,会自动补全.php
2 视图是html,就必须把后缀带上
3 同一个方法中可以执行多次该语句,会依次将视图文件载入
注意:如果同一个控制器加载了多个视图,变量只需要赋值一次,其他模板都可以进行使用
4 view方法后面可以跟第二个参数,即分配的变量(数组)
例:$data = array("name"=>"lily")
$this->load->view("test.php",$data)
视图文件中:<?php echo $name;?> -- 直接使用数组的索引作为变量名进行使用
注意:CI的视图文件中,支持变量名简写输出:<?=$name ?>
变量分配:$this->load->vars(变量)
-----视图中的流程控制-----
if(){..} --> if(): ... endif;
foreach(): ... endforeach;
=================模型======================
模型层:
1.在application/models下创建类文件,并继承CI_Model
2 控制器中调用模型层:
1)加载模型层:$this->load->model("User");//User类加载到控制器层中
$this->load->model("User","u");//在上面加载的基础上再进行模型层的取别名的操作,别名:u
* 加载模型后,模型会成为超级对象的属性
* 如果你的模型层包含子目录,那么在加载模型的时候,必须写明目录结构,例如:
$this->load->model("test/User");
2)调用模型层的方法:
没有取别名:$this->User->模型层中的方法()
取别名(可以使用别名作为$this的属性,再调用方法):$this->u->模型层中的方法()
-----自动加载模型-----
如果程序中有很多地方需要使用到模型,那么可以在config/autoload.php中配置模型为自动加载
$autoload["model"] = array("User");
=====================输入类==============================
form:
action:
site_url("控制器/方法")--http://localhost/work/index.php/控制器/方法
获取值:
post:$this->input->post("前台的控件的Name");
get:$this->input->get("前台的控件的Name");
cookie:$this->input->cookie("cookie的名字");
CI下载与安装_基础配置_MVC的更多相关文章
- SVN CentOS7 下配置svn的安装及基础配置介绍
CentOS7 下配置svn的安装及基础配置介绍 by:授客 QQ:1033553122 目录 一. 二. 三. 四. 五. 六. 七. 一. 实践环境 CentOS 7操作系统(CentO ...
- nginx下载,安装,基础命令,和代理tomcat例子理解
nginx代理讲的很好理解:https://www.cnblogs.com/ysocean/p/9392908.html 一.nginx应用场景: 1.反向代理(用的非常多) 客户端发出请求,反向代理 ...
- Maven的下载、安装与环境配置
在创建一个项目时,搭建环境往往是编写具体代码的先决条件,而获取到所有需要的jar包是其中的重中之重.起初,人们在需要jar包的时候总会在网上四处查找,而且如果不知道某jar包版本的更迭,写出的代码或许 ...
- 下载、安装JDK并配置JDK的环境变量
概念简介: JDK:(Java Development Kit)Java语言的软件开发工具包,它包含了Java程序的开发工具和Java程序的运行环境JRE: JRE:(Java Runtime Env ...
- maven安装与基础配置
下载,安装 下载地址 https://maven.apache.org/ 解压安装包到安装路径 tar -zxvf apache-maven-3.8.1-bin.tar.gz -C /opt/ 配置P ...
- nginx安装及基础配置(含jdk安装及配置)
0.jdk安装配置 #下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-7u25-linux-x64.tar.gz tar -xzf jdk-7u25-linux-x64.tar.gz m ...
- eclipse JDK 下载 and 安装 and 环境配置
eclipse和JDK软件下载 链接:https://pan.baidu.com/s/1bpRHVIhNtK9_FMVbi34YUQ 密码:y3xr eclipse和JDK这两个软件是配套使用的,适用 ...
- wamp安装和基础配置
一 下载地址 二 安装 三 修改默认网站目录 四 修改数据库密码 一 下载地址 wamp百度软件中心 wamp官方下载地址 二 安装 windows环境下wampserver的配置教程——超级详细 w ...
- tomcat下载与安装..使用和配置环境变量
操作环境: xp, myEclipse6.5 tomcat6.0 正文: 一.下载 tomcat官方网站 http://tomcat.apache.org 在左边Download树形菜单中 点击最新版 ...
随机推荐
- ubuntu 虚拟机上的 django 服务,在外部Windows系统上无法访问
背景介绍 今天尝试着写了一个最简单的django 服务程序,使用虚拟机(Ubuntu16.02 LTS)上的浏览器访问程序没有问题.但是在物理机器上(win10 Home) 就出现错误 解决方法 在 ...
- 高级OOP特性(6)
PHP不支持的高级OPP特性 PHP不支持通过函数重载实现多态 PHP不支持多重继承 PHP不支持根据所修改数据类型为操作符赋予新的含义 对象克隆 克隆实例 在对象前面添加clone关键字来克隆对象, ...
- linux 安装jdk以及nginx详细过程
一.安装jdk 1:首先下载jdk到本地,然后通过git 上传到linux服务器上 2:进入目录usr,并创建目录java,将jdk的压缩文件移动到该目录下 cd /usr mkdir java mv ...
- Oracle:如何使用PL/SQL 11.0连接远程Oracle12c服务器?
背景: 如何实现远程连接服务器上的oracle12c? 1.安装一个oracle12c空库,使用oracle12c中集成的oracle pl/sql developer工具实现连接远程服务器上的ora ...
- Django REST framework+Vue 打造生鲜超市(五)
六.商品类别数据展示 6.1. 商品类别数据接口 (1)商品分类有两个接口: 一种是全部分类:一级二级三级 一种是某一类的分类以及商品详细信息: 开始写商品分类的接口 (2)序列化 给分类添加三级分类 ...
- scrapy的命令行
scrapy --help 列出帮助信息以及常用命令scrapy version 列出scrapy版本scrapy version -v 列出详细的scrapy版本以及各组件信息 scrapy sta ...
- 在windows系统之中查看目前已安装的更新
方法1:使用PowerShell get-hotfix 方法2:使用cmd systeminfo.exe 参考链接
- 手写java虚拟机(一)——搭建环境
毕业设计打算做一个java虚拟机,首先要对java虚拟机有一个简单的了解(jvm).目前市面上有众多的jvm,如sun公司的HotSpot VM.Classic VM,IBM公司的J9 VM等等,这里 ...
- 利用JS去做响应式布局
利用JS去做响应式布局 js动态改变布局方式 // 取浏览器可视区高宽 var lw = $(window).width(); var lh = $(window).height();// 页面加载完 ...
- [LeetCode] Maximum Product of Three Numbers 三个数字的最大乘积
Given an integer array, find three numbers whose product is maximum and output the maximum product. ...