PHP:【实战】用composer自撸框架

PHP:【实战】用composer自撸框架
自撸 PHP 发开框架

1.架构
  • M :MODEL, 使用第三方包实现

  • V :VIEW, 使用第三方包实现

  • C :CONTROLLER :业务逻辑是写在控制器中

    2.第三方包

  • Model : composer require catfan/medoo

  • View : composer require league/plates

    1. 流程
  • 创建自己的框架核心代码,MODEL, VIEW,分别继承第三方的包

  • 创建自己的应用, 按MVC架构模式,创建属于自己的models, views, controllers

一.Core框架核心类文件
①Model 模型类文件

②View 视图类文件

二.MVC框架类文件
①Model 模型类文件

②View 视图类文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
    <table>
        <caption>用户信息表</caption>
        <thead>
            <tr>
                <td>编号</td>
                <td>姓名</td>
                <td>性别</td>
                <td>操作</td>
            </tr>
        </thead>
        <tbody>
            <?php foreach($users as $user):?>
                <tr>
                    <td><?= $user['id']?></td>
                    <td><?= $user['uname']?></td>
                    <td><?= $user['gender']==1?'男':'女'?></td>
                    <td><button>删除</button><button>编辑</button></td>  
                </tr>
            <?php endforeach;?> 
        </tbody>
    </table>

    <?php
    //讨论省略点分页    前提: 两边的省略点都出现的时候
    //分页条显示的页数
    $showPages = 5;

    //分页条的开始页码值
    $startPage = 1;


    //分页条的结束页码值
    $endPage = $pages;

    //分页条的终止页码相对于当前页码的偏移量:
    $offset = ($showPages-1)/2;

    if($showPages < $pages)
    {
        if($page > $offset+1)
        {
            $startOmit = '...';
            $startPage = $page-$offset;
            $endPage = $page+$offset;
            if($endPage > $pages){$endPage=$pages;}
        }else{
            $startPage = 1;
            $endPage = $showPages;
        } 


        if($showPages<$pages && $page + $offset < $pages) $endOmit = '...';

    }



    
    
    ?>
    <!-- 动态生成分页条  跳转地址 当前页码的高亮显示 -->
    <p>
        <!-- 首页  上一页     下一页 尾页 -->
        <!-- 获取上一页 -->
        <?php $prev = $page-1; if($page == 1) $prev = 1; if($page != 1):?>
            <a href="/page/1">首页</a>
            <a href="/page/<?=$prev?>">上一页</a>
        <?endif?>

        <?php if(isset($startOmit)):?>
            <a href="javascript:;"><?=$startOmit?></a><?endif?>
        <?php
            for ($i=$startPage; $i <=$endPage ; $i++) :
                //生成动态的跳转地址 a href 属性 $jump
                $jump = sprintf('/page/%d',$i);
                $active = ($i==$page) ? 'active' : null;
                ?>
            
        
        <a class="<?=$active?>" href="<?=$jump?>"><?=$i?></a>

        <? endfor;?>

        <?php if(isset($endOmit)):?>
            <a href="javascript:;"><?=$endOmit?></a><?endif?>
        <!-- 下一页 -->

        <?php $next = $page+1; if($next == $pages) $next=$page; if($page != $pages) :?>
            <a href="/page/<?=$next?>">下一页</a>
            <a href="/page/<?=$pages?>">尾页</a>
            <?endif?>
    </p>
</body>
</html>

②Controller 中间控制器类文件

三.Public 主页文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值