PHP之 composer

下载和安装

  1. composer 的下载
    官网下载:https://getcomposer.org
    把 composer 下载到一个文件夹中。

  2. 在Mac 上 安装

$ php composer-setup.php

然后

$ php composer.phar
运行结果
这里写图片描述

  1. 初始化

$ php composer.phar init

4.
$ php composer.phar dump-autoload

参考:https://lvwenhan.com/php/408.html
注意:更改composer.json
之后终端运行$ php composer.phar update 这样才能把 composer.json 里面的控件加载进来。
错误提示-框架:

"require": {
        "filp/whoops":"*"
}

实现视图装载器

发送邮件

这里采用 ‘nette/mail’ 包作为我们的邮件发送基础模块,在它的基础上封装一个 ‘Mail’ 类,暴露出简洁的 API 给控制器使用,下面我们正式开始。

引入 ‘nette/mail’ 包,修改 ‘composer.json’

终端:

$ php composer.phar update
这样’nette/mail’加载进来

进行下一步之前参考https://lvwenhan.com/php/412.html

Redis

简介

Redis是一个开源的高性能的 ‘key-value’ 数据库,其 ‘value’ 支持 ‘String’、’Map(Hash)’、’list’、’set’ 和 ‘sorted sets’,中文翻译为 字符串、字典(哈希,在’世界上最好的语言PHP’ 中属于 ‘数组’ 的一部分)、列表、集合和有序集合。

我们可以用 Redis 作为高速缓存,数据库,消息代理,放系统经常需要访问的数据。相比使用文件作为缓存,Redis 拥有更高的性能、更好地可维护性和更强大的操作 API。
官网:https://redis.io

下载&安装

下载 Redis:http://download.redis.io/releases/redis-4.0.6.tar.gz
安装:https://redis.io/download
1. 下载完成,解压,在终端输入命令:

cdredis4.0.6 make

执行完,如图所示:
这里写图片描述

图中提示:运行

$ make test

执行完$ make test如图:
这里写图片描述

2.已经编译的二进制文件在SRC目录中可用
继续终端运行

$ src/redis-server

执行成功如图:(默认监听 ‘6379’ 端口)
这里写图片描述

开始使用Redis

1.这里选择’nrk/predis’ 包作为 Redis 驱动,so修改composer.json文件:

 "require": {
        "noahbuscher/macaw": "dev-master",
        "illuminate/database": "*",
        "filp/whoops":"*",
        "nette/mail":"*",
        "predis/predis": "*"
    },

终端运行$ php composer.phar update,更新安装完成。
2.构建 Redis类,新建 ‘services/Redis.php’:

<?php

/**
 * Created by PhpStorm.
 * User: yanyan
 * Date: 2017/12/13
 * Time: 16:14
 */
use Predis\Client;
/**
 * \Redis
 */
class Redis
{
    const CONFIG_FILE = '/config/redis.php';
    protected static $redis;
    //初始化
    public static function set($key,$value,$time = null,$unit = null)
    {
    self::init();
    if ($time){
        switch ($unit){
            case 'h':
                //小时
               $time *= 3600;
                break;
            case 'm':
                $time *= 60;
                break;
            case 's':
            case 'ms':
                break;
            default:
                throw new InvalidArgumentException('单位只能是 h,m,s,ms');
                break;
        }
        if ($unit == 'ms'){
            self::_psetex($key,$value,$time);
        } else {
            self::_setex($key,$value,$time);
        }
    } else {
        self::$redis->set($key,$value);
    }
}

    public static function init(){
        self::$redis = new Predis\Client(require BASE_PATH.self::CONFIG_FILE);
    }

    private static function _psetex($key,$value,$time){
    self::$redis->psetex($key,$time,$value);
    }

    private static function _setex($key,$value,$time){
        self::$redis->setex($key,$time,$value);
    }

    public static function get($key){

    self::init();
    return self::$redis->get($key);
    }

    private static function delete($key){
    self::init();
    return self::$redis->del($key);
    }
}

新建配置redis文件’config/redis.php’:

<?php
return [
    'host'=>'127.0.0.1',
    'port' => 6379
];

这里的6379是刚刚完成 redis 安装时显示的端口号。
3.开始测试。在HomeController的 home方法中添加:

        Redis::set('key','value',35,'s');
        echo Redis::get('key');

在浏览器运行一次,把Redis::set('key','value',35,'s'); 注释掉。不断刷新,value 会在设定的时间(35s)结束后从页面上消失。

猜你喜欢

转载自blog.csdn.net/yanyanforest/article/details/78773011