π框架之实战项目(代码分享)

通过之前的学习,本文主要介绍一下实现用户的登录、注册等功能的接口代码,让大家通过小实战来感悟phalapi框架的神奇之处。(以下代码均可右滑)

获取参数规则

数据库设置

注册

A层

/**
     * 用户注册
     * @desc 若用户名存在,throw -1
     */
    public function userRegister() {

        $Domain_User = new Domain_User();
        //检查username是否存在
        $Domain_User->userCheck($this->username);
        return $Domain_User->userAdd($this);
    }

D层

/**
     * @param $data
     * 用户注册
     * @return int
     * @throws BadRequestException
     */
    public function userAdd($data){
        $Model_User = new Model_User();
        $uid = $Model_User->userAdd($data);
        if (!$uid){
            throw new BadRequestException('error userAdd',-1);
        }
        return (int)$uid['id'];
    }

M层

/**
     * @param $data
     * 用户注册
     * @return $result
     */
    public function userAdd($data){
        return $result = $this->getORM()->insert(array(
            'username'      =>  $data->username,
            'password'      =>  $data->password,
            'phone'         =>  $data->phone,
            'create_date'   =>  time()
        ));

    }

登录

A层

/**
     * 用户登录
     * @desc 返回用户id
     */
    public function userLogin() {
        $Domain_User = new Domain_User();
        $Domain_User->userCheck($this->username);
        return $Domain_User->userLogin($this);
    }

D层

/**
     * @param $data
     * 用户登录
     * @return $id
     * @throws BadRequestException
     */
    public function userLogin($data){
        $Model_User = new Model_User();
        $id = $Model_User->userLogin($data);
        if (!$id){
            throw new BadRequestException('error username or password wrong',-1);
        }
        return $id;
    }

M层

/**
     * @param $data
     * 用户登录
     */
    public function userLogin($data){
        return $this->getORM()->select('id')->where(array('username'=>$data->username))->where(array('password'=>$data->password))->fetch();
    }

获取用户信息

A层

/**
     *获取用户信息
     * @desc 返回用户id信息
     * @return mixed
     */
    public function getInfo() {
        $Domain_User = new Domain_User();
        return $Domain_User->getInfo($this->id);
    }

D层

/**
     * @param $id
     * 根据id获取用户信息
     * @return $user
     * @throws BadRequestException
     */
    public function getInfo($id){
        $Model_User = new Model_User();
        $user = $Model_User->getInfo($id);

        if (!$user){
            throw new BadRequestException('error id wrong',-1);
        }
        return $user;
    }

M层

/**
     * @param $id
     * @根据id获取用户信息
     */
    public function getInfo($id){
        //$id=(int)$id;
        return $this->getORM()->where(array('id'=>$id))->fetch();
    }
    public function getUserList(){
        return $this->getORM()->select('*');
    }

在这里,小编对代码进行了部分注释,希望对大家的学习有所帮助,也希望有问题加我微信(wzc88czw)交流学习心得。

原文发布于微信公众号 - 程序员的碎碎念(gh_53e607dd4782)

原文发表时间:2018-02-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏好好学java的技术栈

Hexo+github搭建个人博客环境配置和发布(图文详解)

上一篇博文 《Hexo+github搭建个人博客-环境搭建篇》 中,我们讲解了利用Hexo搭建个人博客应该要配置哪些环境。 相信大家已经迫不及待的想要知道接下来...

1032
来自专栏运维

OpenResty Codis集群缓存系统

客户端------OR入口------Codis缓存------Nginx反向代理------IIS源站

1291
来自专栏Java Edge

HTML5新特性1 <aside> 标签

<aside> 标签定义其所处内容之外的内容 aside 的内容应该与附近的内容相关。 网站中主要有以下两种使用方法

581
来自专栏Spark学习技巧

Kafka单节点至集群的安装部署及注意事项

kafka简介 kafka的重要作用: 发布和订阅 像消息传递系统一样读写数据流。 处理 编写实时响应事件的可伸缩流处理应用程序 存储系统 将数据流安全地存储...

3197
来自专栏Hadoop实操

如何编译Azkaban插件

前面Fayson介绍了《如何编译安装Azkaban服务》,在安装的时候我们再指定配置文件中有配置Web服务和Executor服务的插件路径,说明Azkaban支...

9926
来自专栏Spark学习技巧

重磅:如何玩转kylin

1, kylin是什么?为什么需要? Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持...

3095
来自专栏Hadoop实操

如何在CDH5.15中安装CDSW1.4

3856
来自专栏木制robot技术杂谈

Hexo搭建个人博客(二)— 搭建Hexo

这篇文章主要介绍如何搭建本地Hexo博客,并将博客部署到github。 ---- 初始化Hexo 在电脑上任意一个你喜欢的地方创建一个文件夹,文件夹的名字命名...

3547
来自专栏祝威廉

StreamingPro 支持多输入,多输出配置

最近正好有个需求,就是从不同的数据库以及表里拉出数据,经过一定的处理放到ES里供查询,最好还能放个到parquet里,这样可以支持更复杂的SQL。之前Strea...

742
来自专栏王小雷

Ubuntu16.04安装Hadoop2.6+Spark1.6+开发实例

Ubuntu16.04安装Hadoop2.6+Spark1.6,并安装python开发工具Jupyter notebook,通过pyspark测试一个实例,調通...

20810

扫码关注云+社区