技术圈开发者交流群:

Laravel 框架中如何打印 sql 语句到日志中

在开发过程中,难免需要对 sql 语句的问题排查,我们可以把程序执行中运行的 sql 语句记录到日志中。

甚至,还可以记录 sql 语句的执行时间,对执行时间过长的 sql 的语句增加预警等。

Laravel 框架提供的 sql 监听事件,只需要在 Provider 的 boot 方法里增加监听回调即可。

PHP 2024年04月19日 1006

在 CentOS 7.9 中使用 Yum 快速安装 PHP 8.3

目前,CentOS 7.9 已经算是很古老的系统了,但仍然还在很多公司中使用。安装 PHP 有编译安装,也可以使用 Yum 安装,前者较为复杂,耗时耗力,后者就很简单而且很快。但是官方的 Yum 中自带的 PHP 版本也只有很古老的 PHP 5.4 了,要想安装比较新的 PHP 8 就需要使用第三方提供的 Yum 源了。

Remi's RPM repository(简称 Remi 仓库)是由法国开发者 Remi Collet 维护的一个针对 Red Hat Enterprise Linux(RHEL)及其衍生发行版(如 CentOS、Oracle Linux 等)的第三方软件仓库。

所以,这里我就使用 Remi 源安 PHP 8.3 做一下介绍。

PHP 2023年12月09日 691

Casbin 中 Model 的语法详解

Casbin 是一个高效强大的开源访问控制框架,它支持 ACL、RBAC、ABAC 等多种模型。

Model,即模型,是 Casbin 的一个重要组成部分,模型的定义简单而复杂,且充满学问Model 的作用,是对权限模型的定义,例如:aclrbacabac 等权限模型。

模型配置主要有五个部分:[request_definition],[policy_definition],[role_definition],[policy_effect] 和 [matchers],分别表示请求定义、策略定义、角色定义、策略效果定义、匹配器,其中 [role_definition] 角色定义是用于基于角色的模型(RBAC),支持用 # 开头表示注释。

PHP 2023年09月20日 3861

利用 PHP-Casbin 中的优先级模型来做权限控制

优先级模型,所谓优先级,是指按一定的顺序加载策略。

优先级高的策略先加载,先加载的策略具有较高的优先级。

PHP-Casbin 目前支持三种模式:隐式优先顺序加载策略、显示优先顺序加载策略、基于角色和用户的层级关系加载策略。

PHP 2023年08月15日 6830

PHP-Casbin 在分布式服务中利用 Watcher 做策略同步

分布式服务,是将多个具有不同或相同功能的服务分散在不同的服务器上,对外提供服务。

那么在分布式服务中,使用 PHP-Casbin 作为权限控制时,不同服务器上的服务的策略要保证是同步的。这里我们主要探讨常驻内存的 PHP 服务,在常驻内存的服务中,PHP-Casbin 一般是单例模式,所有的策略都会加载到内存,性能出色。

PHP-FPM 下每次都重新初始化 Enforcer 并重新加载策略,不需要做额外的策略同步。

PHP 2023年07月11日 8799

使用 PHP-Casbin 在 SaaS 应用中做多租户权限系统架构设计

多租户(multi-tenancy)是一种软件架构技术,是实现在多租户的环境下共用相同的系统或程序组件,并且保证各用户间的数据隔离,也可称作域租户

PHP-Casbin 不仅提供了全局的RBAC的权限模型,而且还支持特定域的权限模型。特定租户/域的角色意味着当用户在不同的租户/域中时,用户可以拥有不同的角色,亦拥有不同的权限策略。在大型项目中,特别是在像SaaS PaaS这种云服务中,不同的租户需要拥有独立的权限控制,这就非常有用。

这里我以一个多商户的电商平台为例,电商平台的商户就是租户,每个商户有自己的管理人员,可以分配不同的角色,定义自己的权限。这些商户间的数据在逻辑上是完全隔离的,但他们共享这个电商平台的其他资源。

PHP 2023年06月03日 1398

用 PHP-Casbin 做权限控制时,如何使用自定义函数

PHP-Casbin 是一个非常流行的权限控制框架,支持ACL RBAC ABAC 等权限控制模型。

它使用 Matcher 中配置的表达式来做权限决策,不仅提供了非常多的内置函数,而且还可以在Matcher中指定自定义函数。

如果你的项目还有没有引入Casbin依赖,则需要安装一下:

PHP 2023年05月20日 797

如何在Ubuntu上安装快速安装PHP?

快速安装,到底有多快?

这里以目前最新的PHP8.2为例,我的电脑尝试了一些10分钟之内搞定,如果网络好可能更快。

PPA个人软件包存档(Personal Package Archive)是一项服务,允许用户上传使用Launchpad构建和发布的Ubuntu源软件包作为apt信息库。

PHP 2022年11月02日 1042

composer.json 文件结构详解

composer.json 记录了项目中依赖库的关系、版本信息、其他数据等。

{
    "name": "phpoffice/phpspreadsheet",
    "description": "Read, Create and Write Spreadsheet documents in PHP",
    "keywords": ["PHP", "OpenXML", "Excel", "xlsx", "xls"],
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "Maarten Balliauw",
            "homepage": "https://blog.maartenballiauw.be"
        }
    ]
}

name, 包名,包括作者名称和项目名称,以/分割;包名称可以包含任何字符,包括空格,并且不区分大小写。为了简化安装,建议定义一个不包含非字母数字字符或空格的短名称;

PHP 2020年04月27日 2073

Composer 基本使用

工欲善其事,必先利其器;器欲尽其能,必先得其法。

作为 PHP 工匠,Composer 便是 PHP 工匠们的一大利器之一,下面就介绍一下如何得其法,进而尽其能

假设我们的项目需要用到这个库monolog/monolog日志库,首先来安装这个库:

PHP 2020年03月26日 2132

Composer 快速安装

Composer 需要 PHP 5.3.2+ 以上版本,它是跨平台的,适用于 Windows、Linux、macOS等系统。

这里的安装以 Linux 为例,Windows 下的安装相对简单,可以参考官方文档:Installation - Linux / Unix / macOS

首先,下载安装文件

PHP 2020年03月22日 1585

Composer 是什么 ?

ComposerPHP的一个依赖管理工具。

项目开发中,难免会用到各种已有的扩展库,各个扩展库的依赖关系可能错综复杂,使用传统的require include的方式会让你困于处理各种依赖问题,而无法专注于自身的业务代码。

这一次,真正了解Composer

PHP 2020年03月19日 1810

CentOS 下给 PHP 安装 Redis 扩展

Redis是一个开源,内存型,数据结构存储系统。可以用来作为数据库、缓存、消息中间件。开源就不用说了,内存型说明其速度快,数据结构存储说明它是可以数据存储。

Redis 参考:Centos下Redis的安装与配置,这里只介绍phpredis扩展的安装,Redis 的扩展在不同环境下有不同的安装方法,这里要说的是从源码的安装方式,其他方式可以参考:Redis Install

wget http://pecl.php.net/get/redis-5.2.0.tgz
PHP 2020年03月11日 1586

CentOS 下给 php 安装 Xdebug 扩展

XdebugPHP的一个扩展,可帮助开发者进行调试和开发。

这里以源码编译安装的PHP为例,如果是yumapt安装的php可以参考官网:Installation Xdebug

wget https://xdebug.org/files/xdebug-2.9.2.tgz
PHP 2020年03月11日 1526

排行

解决方案

网站建设

专业企业官网建设,塑造企业形象,传递企业价值

系统开发

系统软件开发,用心思考,用心设计,用心体验

技术支撑

打破技术瓶颈,让不堪重负的项目起死回生

业务中台

构建全渠道一体化运营能力,实现全链路数字化

文案策划

文案撰写、营销策划,专注品牌全案

新媒体运营

一站式解决企业互联网营销痛点和难题

以技术的力量,改变互联网

联系我们
鄂ICP备19028750号-1 @copyright 2025 tech1024.com