RabbitMq类封装
前言
很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家
提示:以下是本篇文章正文内容,下面案例可供参考
1.首先是账号密码配置 config.php
代码如下(示例):
<?php
return $arr = [
'RabbitMq' => [
// Rabbitmq 服务地址
'host' => '127.0.0.1',
// Rabbitmq 服务端口
'port' => '5672',
// Rabbitmq 帐号
'login' => 'guest',
// Rabbitmq 密码
'password' => 'guest',
'vhost'=>'/'
]
];
2.基类 base.php
代码如下(示例):
<?php
include dirname(__FILE__).'/object.php';
include dirname(__FILE__).'/config.php';
class RabbitMq implements object
{
//保存类实例的静态成员变量
static private $_instance;
static private $_conn;
static private $amp ;
static private $route = 'key_1';
static private $q ;
static private $ex ;
static private $queue;
public static function getInstance(){
global $arr;
if (!(self::$_instance instanceof self)) {
self::$_instance = new self($arr['RabbitMq']);
return self::$_instance;
}
return self::$_instance;
}
private function __construct($conn)
{
//创建连接和channel
$conn = new AMQPConnection($conn);
if(!$conn->connect()) {
die("Cannot connect to the broker!\n");
}