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

通过之前的学习,本文主要介绍一下实现用户的登录、注册等功能的接口代码,让大家通过小实战来感悟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 条评论
登录 后参与评论

相关文章

来自专栏salesforce零基础学习

salesforce 零基础学习(四十)Custom Settings简单使用

有时候,项目中我们需要设置类似白名单的功能,即某些用户或者某种Profile的用户不走一些校验或者走一些校验,这时,使用Custom Settings功能可以很...

1769
来自专栏LIN_ZONE

Shell编程基础

请参考:菜鸟教程参数传递 在执行脚本的时候可以向脚本传递参数,脚本获取参数的格式为:$n

552
来自专栏ChaMd5安全团队

香香的xss小记录(一)

0x00 前言 总结的一些xss的技巧(可能会持续更新),愿大佬勿喷,还有什么方法,大佬记得分享啊。有什么看不惯的错误请在本文留言,谢谢。 0x01 我认为最...

3326
来自专栏林德熙的博客

C#判断文件属于文本或二进制

其实标题说错了,所有的文件储存都是二进制,但我们想区别的是那些可以当做文本来读的,如 .txt,.cs,.c 的文件和一般的不是文字的文件。 我们有什么办法可区...

802
来自专栏闪电gogogo的专栏

Python——Scrapy初学

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。Scrapy最初是为了页面抓...

23410
来自专栏郭少华

(Vue全家桶)Vue-router

如果你在使用vue-cli中已经选择安装了vue-router,那这里不需要重复安装了。

571
来自专栏还债之路

Linux-四剑客-find-awk-grep-sed解释----未完结版

find - search for files in a directory hierarchy 搜索目录层次结构中的文件 用来在指定目录下面查找文件或目录,任...

693
来自专栏一个会写诗的程序员的博客

Python 使用 pygame 实现一个简单的动画

694
来自专栏桥路_大数据

Python3使用Scrapy快速构建第一款爬虫

3367
来自专栏前端小叙

Vue.js 2.0 学习重点记录

Vue.js兼容性 Vue.js.js 不支持 IE8 及其以下版本,因为 Vue.js.js 使用了 IE8 不能模拟的 ECMAScript 5 特性。 V...

3115

扫码关注云+社区