码迷,mamicode.com
首页 > Web开发 > 详细

php装饰器

时间:2017-05-07 21:10:41      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:function   time   ons   sharp   har   highlight   print   echo   abstract   

<?php

/*
 * 用一个类来装饰另一个类,动态的给一个对象增加一些额外功能,这些功能一般是在这个对象调用方法前或方法后
 * 比如我们要给User类增加一个登陆日志的功能
 */

// 抽象构件
abstract class Component
{
    abstract public function login($time);
}


// user类
class User extends Component
{
    private $login_time;

    public function login($time)
    {
        $this->login_time = $time;
    }


}


// 装饰器
class LogDecorate extends Component
{
    private $user;
    private $time;
    /**
     * Log constructor.
     */
    public function __construct(User $user)
    {
        $this->user = $user;
    }

    public function login($time)
    {
        $this->user->login($time);
        $this->log($time);
    }

    public function log($time)
    {
        echo sprintf("Log: login %d",$time) . PHP_EOL;
    }

}

$user = new User();
$log = new LogDecorate($user);
$log->login(time());

  

php装饰器

标签:function   time   ons   sharp   har   highlight   print   echo   abstract   

原文地址:http://www.cnblogs.com/itfenqing/p/6822182.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!