又一个基于 Laravel 5.2 开发的后台管理系统

1、简介 zhanghaobao 是基于 Laravel 5.2 开发的一套后台管理系统,支持前后台分表登录,RBAC权限管理,通知闪存等功能,是用于个人以及公司项目快速开发的基础项目。 2、Github https://github.com/jwwb681232/zhanghaobao 3、安装 克隆资源库 git clone https://github.com/jwwb681232…

最佳实践系列(十):PHP 统一资源处理 API —— 流(Stream)的概述与使用详解

在现代 PHP 特性中,流或许是最出色但使用率最低的。虽然 PHP 4.3 就引入了流,但是很多开发者并不知道流的存在,因为人们很少提及流,而且流的文档也很匮乏。PHP 官方文档对流的解释如下: 流的作用是提供统一的公共函数来处理文件、网络和数据压缩等操作。简单而言,流是具有流式行为的资源对象,也就是说,流可以线性读写,并且可以通过 fseek() 之类的函数定位到流中的任何位置。 可能…

最佳实践系列(九):PHP 多字节字符串处理函数及字符编码

mbstring 扩展 我们所说的多字节字符指的是不在传统的 128 个 ASCII 字符集中的字符,比如中文字符。而 PHP 中处理字符串的函数默认假设所有字符都是 8 位字符,占用一个字节,如果使用这些 PHP 原生的字符串处理函数处理包含多字节字符的 Unicode 字符串,会得到意料之外的错误结果。 为了避免处理多字节字符出错,可以安装 mbstring 扩展。这个扩展提供了处理…

最佳实践系列(八):PHP 数据库统一处理 API —— PDO 扩展及其在 Laravel 底层的使用

PHP 支持多种数据库,如 MySQL、PostgreSQL、SQLite 和 Oracle 等,并且这些数据库都提供了用于 PHP 和相应数据库之间通信的扩展,如 mysqli、sqlite3 等。这样造成的一个问题是如果项目中使用了多种数据库,需要安装并使用多种 PHP 数据库扩展和接口,增加了学习和维护的成本。为此,从 PHP 5.1 开始引入了一个新的扩展 —— PDO。 PDO…

RabbitMQ 从入门到放弃系列笔记(八):远程调用(RPC)

在云计算环境中,很多时候需要用它其他机器的计算资源,把一部分计算任务分配到其他节点来完成。RabbitMQ 如何使用 RPC 呢?下面将会通过其它节点完成斐波纳契示例。 流程图  当客户端启动时,它创建了匿名的 callback queue 客户端发起 RPC 请求时将同时设置两个 properties:reply_to 设置为 callback queue;correlation_i…

RabbitMQ 从入门到放弃系列笔记(七):通过主题进行消息分发

Topic Exchange 对于 Message 的 routing_key 字符串格式是有限制的:以点号”.”分割的字符表,如php.laravel,并且长度不能超过 255 个字节。 对于 routing_key 而言,有两个特殊字符: *:代表任意单词 #:代表0个或多个单词  Topic Exchange 与其他 Exchange 的转化: routi…

RabbitMQ 从入门到放弃系列笔记(六):消息路由

如果我们只想让 error 级别的 log 保存到磁盘,该怎么做? emit_logs_direct.php <?php /** * 发送消息 */ $exchangeName = ‘direct_logs’; $level = empty($argv[1]) ? ‘info’ : $argv[1]; // 错误级别:info、warn、error $message = empty…

RabbitMQ 从入门到放弃系列笔记(五):消息订阅(Publish/Subscribe)

之前都是将消息发送到同一个 Consumer,而现在我们需将其发送到多个 Consumer。 我们将创建一个日志系统,它包含两个部分:第一个部分负责发出log(Producer),第二个部分负责接收并打印(Consumer)。我们将构建两个 Consumer,第一个将 log 写到物理磁盘上;第二个将 log 输出到屏幕。 “Fanout” not telling…

RabbitMQ 从入门到放弃系列笔记(四):消息分发机制

对于计算密集型任务,需要将其分发给多个消费者进行处理。 准备工作 我们对前面测试的代码稍作改造: task.php <?php /** * 分发任务 */ $exchangeName = ‘task’; $queueName = ‘worker’; $routeKey = ‘worker’; $message = empty($argv[1]) ? ‘Hello World!’ :…

RabbitMQ 从入门到放弃系列笔记(三):PHP 中实现消息发送和接收

send.php <?php /** * 发送消息 */ $exchangeName = ‘demo’; $routeKey = ‘hello’; $message = ‘Hello World!’; // 建立TCP连接 $connection = new AMQPConnection([ ‘host’ => ‘localhost’, ‘port’ => ‘5672’…