Skip to content
This repository has been archived by the owner on May 22, 2020. It is now read-only.

Latest commit

 

History

History
153 lines (141 loc) · 6.63 KB

README.md

File metadata and controls

153 lines (141 loc) · 6.63 KB

【已废弃,个人精力不在PHP方面,故不再更新维护】

关于PHP_MVC_API

PHP_MVC_API作为一个极其轻量级的MVC&API开发框架,不断吸取参考了flight、phx、discuz、punbb等开源项目的优点,最终形成独具自己风格的快速开发框架。 适合微型项目,让自己学会和巩固一些设计模式及一些必要的基础知识。目前我主要用于服务端应用程序接口开发,提供API和移动APP进行数据交换。

主要特性(Feature)

使用说明(Usage)

  1. 在install.sql中写好创建表结构及其数据的SQL;
  2. 删掉config.php,访问首页即可进行数据库表的初始化,自动创建config.php;
  3. 在/views/front/目录下写前台的html页面,backend目录下写后台页面;
  4. 在/models/目录下继承者Model类对数据库表进行增删改查;
  5. 在/controllers/front/目录下继承自FrontController类把Model中对数据库表的操作绑定到前台页面中, backend目录下继承自BackendController把Model的数据操作绑定到后台页面中, api目录下继承自ApiController可将数据作为json格式返回供客户端使用;
  6. 具体参见源代码。

示例代码(Sample)

接口(默认返回JSON格式,XML格式需自行扩展)

see http://ime.qqtheme.cn/index.php?c=Upgrade

class UpgradeController extends ApiController
{

    public function get()
    {
        $data = array(
            'versionName' => 'V1.3.4',
            'versionCode' => 10,
            'enforce' => 0,
            'content' => 'V1.3.4,建议升级:
            支持导入已使用过的讯飞、搜狗及百度皮肤;
            支持直接编辑已制作好的讯飞、搜狗及百度皮肤;
            支持普通按键、功能键及拼音输入区背景单独设置;
            修复讯飞皮肤候选栏及拼音区文字颜色总是为黑色的bug;
            修复搜狗皮肤拼音区文字颜色设置无效的bug;
            讯飞及搜狗皮肤拼音区背景颜色可选择完全透明;
            其他一些改进功能改进及界面调整。',
            'url' => 'http://ime.qqtheme.cn'
        );
        $this->responseJson(1, "获取数据成功", $data);
    }

    public function post()
    {
        $this->get();
    }

}

网页(默认使用jQuery及MUI,可以自行替换)

see http://ime.qqtheme.cn/index.php?c=link

DROP TABLE IF EXISTS `lyj_link`;
CREATE TABLE `lyj_link` (
  `id`          INT(8) UNSIGNED  NOT NULL AUTO_INCREMENT,
  `category_id` INT(10) UNSIGNED NOT NULL,
  `name`        VARCHAR(200)     NOT NULL DEFAULT '链接名称',
  `description` VARCHAR(255)     NOT NULL DEFAULT '链接简介',
  `url`         VARCHAR(255)     NOT NULL DEFAULT 'http://',
  `icon`        VARCHAR(255)     NOT NULL DEFAULT 'http://',
  `sortby`      INT(5)           NOT NULL DEFAULT 0,
  `hidden`      INT(2)           NOT NULL DEFAULT 0,
  `timeline`    INT(8)           NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  UNIQUE KEY `url` (`url`)
)
  ENGINE = MyISAM
  DEFAULT CHARSET = utf8
  COMMENT = '友链表';
class LinkModel extends Model
{

    public function getLinkList()
    {
        $sql = 'SELECT * FROM lyj_link ORDER BY sortby ASC,id DESC';
        return $this->selectMulti($sql);
    }

}
class LinkController extends FrontController {

    public function main() {
        $this -> template -> assign('title', '友情推荐');
        $model = new LinkModel();
        $this -> template -> assign('links', $model -> getLinkList());
        $this -> template -> display('LinkIndex.htm');
    }

}
<!--{eval $count = isset($links) ? count($links) : 0;}-->
<!--{if $count < 1}-->
<div class="mui-content">
    <br />
    <p class="center hint">暂时还没有友情链接!</p>
</div>
<!--{else}-->
<p class="center">下面的也是我们的作品,欢迎使用!</p>
<ul class="mui-table-view content">
    <!--{eval $page_size = 7;}-->
    <!--{eval $page_index = isset($_GET['page']) ? intval($_GET['page']) : 1;}-->
    <!--{eval $pager = new Pager($count, $page_index, $page_size);}-->
    <!--{for $i=$pager->getStartNum(); $i<=$pager->getEndNum(); $i++}-->
    <li class="mui-table-view-cell mui-media">
        <a href="{$links[$i-1]['url']}" target="_blank" id="link_{$links[$i-1]['id']}">
            <div class="mui-media-body mui-pull-left">
                <!--{$i}--><!--{eval echo Ubb::decode($links[$i-1]['name']);}-->
                <p class='mui-ellipsis'>
                    <!--{$links[$i-1]['category_name']}-->
                </p>
            </div>
            <img class="mui-media-object mui-pull-right" src="{$links[$i-1]['icon']}" width="50" height="40">
        </a>
    </li>
    <!--{/for}-->
</ul>
<!--{if $count > $page_size}-->
<ul class="mui-pager">
    <li>
        <!--{$pager->getPrevPage()}-->
    </li>
    <li>
        <!--{$pager->getNextPage()}-->
    </li>
    <li>
        <span><!--{$page_index}-->/<!--{$pager->getPageNum()}--></span>
    </li>
</ul>
<!--{/if}-->
<!--{/if}-->

参考链接(Links)

Demo, wap site: http://ime.qqtheme.cn/?c=article
点击这里给我发消息