下载和安装
composer 的下载
官网下载:https://getcomposer.org
把 composer 下载到一个文件夹中。在Mac 上 安装
$ php composer-setup.php
然后
$ php composer.phar
运行结果
- 初始化
$ 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. 下载完成,解压,在终端输入命令:
cdredis−4.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)结束后从页面上消失。