框架实战(以留言板为例子)

一)后端功能整理

my_frame/app/controller/message.php留言板的增删改查控制器

<?php
namespace app\controller;
class message extends \core\lss {
    //留言列表-首页视图
    public function msg_list(){
        $model = new \app\model\message();
        $res = $model->msgList();
        $this->assign('list',$res);
        $this->display('index.html');
    }
    //添加视图
    public function msg_add(){
        $this->display('add.html');
    }
    //添加操作
    public function do_add(){
        $data = $_POST;
        $res = false;
        if ($data['title'] && $data['content']){
            $model = new \app\model\message();
            $res = $model->msgAdd($data);
        }

        if ($res){
            jump('/message/msg_list');
        }else{
            jump('/message/msg_add');
        }
    }
}

my_frame/app/model/message.php留言板的增删改查模型

<?php
namespace app\model;
use core\lib\model;

class message extends model{
    public $table = 'tiezi';
    public function msgList(){
        $list = $this->select($this->table,'*');
        return $list;
    }
    public function msgAdd($data){
        $add = $this->insert($this->table,$data);
        return $add;
    }
}

my_frame/core/common/function.php函数库

<?php
function p($var){
    if (is_bool($var)){
        var_dump($var);
    }else if (is_null($var)){
        var_dump(null);
    }else{
        echo "<pre>".print_r($var,true)."</pre>";
    }
}

/**
 * @param $name @对应值
 * @param bool $default @默认值
 * @param bool $fitt @过滤方式
 * @return bool
 */
function post($name,$default=false,$fitt=false){
    if (isset($_POST[$name])){
        if ($fitt){
            switch ($fitt){
                case 'int':
                    if (is_numeric($_POST[$name])){
                        return $_POST[$name];
                    }else{
                        return $default;
                    }
                    break;
                default;
            }
        }else{
            return $_POST[$name];
        }
    }else{
        return $default;
    }
}

function jump($url){
    header('Location:'.$url);
    exit();
}

二)前端功能整理

my_frame/app/views/layout.html 视图框架

(block里的内容为可改动部分)

<head>
    {% block head %}
    <link rel="stylesheet" href="style.css" />
    <title>{% block title %}{% endblock %}</title>
    {% endblock %}
</head>
<body>
<div>
    <a href="/message/msg_list">首页</a>
    <a href="/message/msg_add">添加</a>
</div>
<div id="content">{% block content %}{% endblock %}</div>
<div id="footer">
    {% block footer %}
    &copy; Copyright 2011 by <a href="http://domain.invalid/">you</a>.
    {% endblock %}
</div>
</body>
</html>

my_frame/app/views/index.html 首页

{% extends "layout.html" %}<--引用视图框架-->

{% block head %}
<title>{% block title %}首页{% endblock %}</title>
{% endblock %}

{% block content %}
<table>
    <thead>
    <tr>
        <th>标题</th>
        <th>内容</th>
        <th>时间</th>
    </tr>
    </thead>
    <tbody>
    {% for l in list %}
    <tr>
        <th>{{ l.title|e}}</th>
        <th>{{ l.content|e}}</th>
        <th>{{ l.timestamp|e}}</th>
    </tr>
    {% endfor %}
    </tbody>
</table>
{% endblock %}

my_frame/app/views/add.html 添加

{% extends "layout.html" %}

{% block head %}
{% block title %}<title>添加</title>{% endblock %}
{% endblock %}
{% block content %}
<h1>添加</h1>
<form action="/message/do_add" method="post">
    <input type="text" name="title" placeholder="请输入帖子标题"><br>
    <textarea name="content"></textarea>
    <input type="submit" value="提交">
</form>
{% endblock %}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值