ci下载的开发包:
phpstudy的部署:
phpstudy的根目录是:D:\WWW
新建目录 cms
把ci开发包的application system index.php license.txt copy到cms目录下面;
运行phpstudy,php版本选择5.4以上,因为在readme.rst中阅读到,php的版本最好是在5.4以及以上最佳;
*******************
Server Requirements
*******************
PHP version 5.4 or newer is recommended.
It should work on 5.2.4 as well, but we strongly advise you NOT to run
such old versions of PHP, because of potential security and performance
issues, as well as missing features.
打开phpstudy首页,
然后进入选择cms这个项目
看说明,这个页面是在显示的 application/view/welcome_message.php这个页面的内容,然后是被控制器 application/controllers/Welcome.php控制的;
为了验证,我修改一下welcome_message.php,加上一个图片,改变一些文字;
先看效果:
注意的地方:
页面渲染耗时{elapsed_time}秒 CI版本 <?php echo CI_VERSION ?> 环境 <?php echo ENVIRONMENT ?>
变量意义 |
变量名称 |
渲染时间 |
{elapsed_time} |
ci的版本 |
CI_VERSION |
环境名称 |
ENVIRONMENT |
controller/welcome.php
$this ->load-> view(‘welcome_message‘ );
加载视图,视图名称是welcome_message,视图的位置是application/view目录下
控制器:代理完成某项任务的php类,充当MVC架构程序的粘合剂;
url:http://example.com/[控制器类名]/[控制器方法名]/[所需参数]
新建一个控制器
namespace:
kind:
file extension:
namespace any8 ;
class Pages extends CI_Controller{
public function view ($page = ‘home‘){ }
}
|
CI_Controller这个类对应于system/core/Controller.php,又叫超级对象,可以使用$this来调用它的变量,方法,一些其它的操作;
public function view ( $page = ‘home‘ ){
if ( ! file_exists( APPPATH. ‘views/pages/‘ .$page . ‘.php‘))
{
// 页面不存在
show_404 () ;
}
$data [ ‘title‘] = ucfirst( $page ); // 将title中的第一个字符大写
$this -> load-> view (‘templates/head‘ , $data) ;
$this -> load-> view (‘pages/‘ . $page, $data );
$this -> load-> view (‘templates/foot‘ , $data) ;
}
注意的地方:
file_exists() 查看文件是否存在 APPPATH 应用的路径,对应application目录
ucfirst() 把第一个字母变为大写
view(视图文件位置,视图所需数据)
这段代码位于 application/config/routes.php
默认的控制器是welcome 默认的方法是index
所以浏览器里访问 localhost/cms/访问的是Welcome.php 对应的welcome_message.php的视图
数据库的配置: application/config/database.php
显示的关闭数据库链接 $this->db->close();
重新链接/保持有效连接 $this->db->reconnect();
链接多数据库:
$DB1 = $this->load->database(‘group_one‘, TRUE);
$DB2 = $this->load->database(‘group_two‘, TRUE);
手动链接数据库:
$this->load->database();
可用的参数
- 数据库连接值,用数组或DSN字符串传递。
- 是否返回连接ID,TRUE/FALSE (boolean),默认值为FALSE (参阅下面的“连接多数据库”)。
- 是否启用 Active Record 类,TRUE/FALSE (boolean),默认值为 NULL。如有疑问,请查看/system/core/Loader.php的database()方法
自动链接:
“自动连接” 功能将在每一个页面加载时被自动实例化数据库类。要启用“自动连接”,可在application/config/autoload.php中的 library 数组里添加 database:
$autoload[‘libraries‘] = array(‘database‘);
模型:模型是专门用来和数据库打交道的PHP类
最基本的模型类必须像这样:
class Model_name extends CI_Model {
function __construct()
{
parent::__construct();
}
}
Model_name 是模型类的名字。 类名的首字母必须大写,其他字母小写。 并且确保你的类继承了基本模型类(Base Model Class)。
文件名应该是模型类名的小写版。
写了一个例子:
class Account extends CI_Controller{
public function index (){
$this -> load-> model (‘user_model‘ ) ; // $this->load->model(‘user_model‘,‘user_model‘);//加载模型
$accountList = $this-> user_model ->user_list () ;//调用模型方法
$data [ ‘user_list‘] = $accountList ;//设置视图数据
$this -> load-> view (‘user/user_list‘ , $data) ; //引导到视图 }
}
|
class User_model extends CI_Model {
function __construct () { $this -> load-> database (); }
public function user_list () { $query = $this-> db ->query ( "SELECT * FROM dt_account limit 0,30" ); $accountArray = $query-> result (); return $accountArray ; } }
|
用户列表
<table> <tr><td>用户id </td><td> 用户名</td><td> 密码 </td></tr> <?php foreach( $user_list as $user ) { echo ‘<tr><td>‘ . $user-> id .‘</td>‘ ; echo ‘<td>‘. $user ->userName . ‘</td><td>‘. $user ->passWord . ‘</td>‘; echo ‘</tr>‘; }
?> </table>
|