您的位置:首页 > 编程语言 > PHP开发

php框架CI入门(一)

2016-04-13 10:16 609 查看
先介绍CI框架的应用程序流程图



1.index.php作为前端的控制器,初始化运行CI所需的基本资源;

2.router检查http请求,确定如何处理请求;

3.如果有存在缓存文件,将直接输出到浏览器,不用走垢面的流程

4.加载控制器前,对http请求和任意用户提交的数据进行安全检查;

5.加载模型,核心类库,辅助函数以及处理请求所需要的资源

6.最后加载视图发送到浏览器,如何开启了缓存,视图会被先缓存起来用于后续的请求

了解了CI框架的处理流程,下面介绍CI的MVC模式。

模型-视图-控制器,将程序的逻辑层和表现层分离,使得页面包含很少的PHP脚本。

   模型: 包含对数据库增删查改的方法

   视图:展示给用户的页面

    控制器:模型,视图和处理HTTP请求所需资源的中介,并生成网页。

了解URL分段

如何遵循模型-视图-控制器模式,URL中的每一段通常表示下面的含义

example,com/class/function/Id

    1.第一段表示要调用的控制器的 类

    2.第二段表示调用类中的函数或方法

    3.第三段表示传给控制器的参数,ID或者其他变量

介绍控制器

     简单得说,控制器就是一个类文件,文件名,类名必须为大写,并继承父类控制器。它是处理Web请求的核心,可以称为超级对
    象。在控制器中可以使用$this 来访问它,这样就可以加载类库,视图以及针对框架的一般性操作。

   比如  example.com/index.php/Blog  

    CI 会查询一个名为Blog的控制器并加载

    example.com/index.php/Blog/index  "index"方法总是在第二段为空时被调用,可以修改成其他方法。

    也可以通过URL分段向方法传递参数

    example.com/index.php/products.shoes.sandals/123   方法会收到最后的两个参数

    

<?php
class Products extends CI_Controller {

public function shoes($sandals, $id)
{
echo $sandals;
echo $id;
}
}
   

   介绍视图

其实就是一个web页面,他不是直接被调用,必须通过控制器来加载。

<?php
class Blog extends CI_Controller {

public function index()
{
//加载指定的视图
$this->load->view('blogview');
}
}
还可以向视图动态添加数据,参数可以是一个数组或者一个对象。

//使用数组的例子
$data = array(
'title' => 'My Title',
'heading' => 'My Heading',
'message' => 'My Message'
);

$this->load->view('blogview', $data);
//使用对象的例子
$data = new Someclass();
$this->load->view('blogview', $data);

//在控制器中写一下代码
<?php
class Blog extends CI_Controller {

public function index()
{
$data['title'] = "My Real Title";
$data['heading'] = "My Real Heading";

$this->load->view('blogview', $data);
}
}
//打开视图文件,修改为传入的数组对应变量
<html>
<head>
<title><?php echo $title;?></title>
</head>
<body>
<h1><?php echo $heading;?></h1>
</body>
</html>
在视图中使用循环,并使用PHP的替代语法。

//控制器
<?php
class Blog extends CI_Controller {

public function index()
{
$data['todo_list'] = array('Clean House', 'Call Mom', 'Run Errands');

$data['title'] = "My Real Title";
$data['heading'] = "My Real Heading";

$this->load->view('blogview', $data);
}
}
//视图文件
<html>
<head>
<title><?php echo $title;?></title>
</head>
<body>
<h1><?php echo $heading;?></h1>

<h3>My Todo List</h3>

<ul>
<?php foreach ($todo_list as $item):?>

<li><?php echo $item;?></li>

<?php endforeach;?>
</ul>

</body>
</html>


介绍模型

      文件名和类名应该一致,首字母为大写,先配置appication/config/database.php,添加数据库的地址,登陆名和密码,并加载

$this->load->model('model_name')

CI提供提供了查询构造器,帮助我们用更少的代码对操作数据

      查询

$query = $this->db->get(‘mytable’,10,20)

这个方法执行SELECT语句并返回查询结果,可以得到一个表所有的数据,第二和第三个参数用于设置limit子句,可以省略。

上面方法的结果赋给了1个$query变量。通过这个变量,可以得到查询的结果。

$query = $this->db->get('mytable');

foreach ($query->result() as $row)
{
echo $row->title;
}
生成查询结果有几种不同的方法,如结果数组,结果行,自定义结果对象

上面的例子使用了结果数组中的result()方法,以对象数组的形式返回查询的结果,一般在foreach循环中使用。

$query = $this->db->query("YOUR QUERY");

foreach ($query->result() as $row)
{
echo $row->title;
echo $row->name;
echo $row->body;
}

$query = $this->db->query("YOUR QUERY");

foreach ($query->result_array() as $row)
{
echo $row['title'];
echo $row['name'];
echo $row['body'];
}

$row = $query->row();

if (isset($row))
{
echo $row->title;
echo $row->name;
echo $row->body;
}


     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: