无论你是什么方向的开发者,在日常工作中必不可少的要和 Linux 系统打交道。在打交道
之前,就必须先远程连接上去,应该很少人人会使用VNC
远程连接吧,更何况很少作为开发的Linux
系统不会安装图形库界面吧,那就必须得使用命令行SSH
远程连接了。
要安装SSH
,肯定的直接在机器上操作,物理机你就接个键盘、显示器,虚拟机直接用界面连接操作。
首先需要安装openssh-server
,如果已经安装可跳过下面的命令。
无论你是什么方向的开发者,在日常工作中必不可少的要和 Linux 系统打交道。在打交道
之前,就必须先远程连接上去,应该很少人人会使用VNC
远程连接吧,更何况很少作为开发的Linux
系统不会安装图形库界面吧,那就必须得使用命令行SSH
远程连接了。
要安装SSH
,肯定的直接在机器上操作,物理机你就接个键盘、显示器,虚拟机直接用界面连接操作。
首先需要安装openssh-server
,如果已经安装可跳过下面的命令。
之前做Laravel项目,一直使用的是Laravel Mix
打包静态资源。但是随着Vite
的横空出世,Laravel已经默认使用Vite
来打包静态资源了。
在此之前,你需要创建一个Laravel项目,并准备PHP
和Node.js
环境。
Laravel
的Vite
插件是laravel-vite-plugin
。项目默认的package.json
中的依赖项已经包含了,只需要安装一下即可。
npm install
Laravel
是一个优雅的 PHP WEB框架,在早期的版本中,一般是采用Mix
搭配webpack
来构建前端资源。
Vue
是一个渐进式 JavaScript 框架,Vite
是下一代前端开发和构建工具。那么这个组合起来,堪称绝美
。
下面是我所使用的版本:
在开发过程中,难免需要对 sql 语句的问题排查,我们可以把程序执行中运行的 sql 语句记录到日志中。
甚至,还可以记录 sql 语句的执行时间,对执行时间过长的 sql 的语句增加预警等。
Laravel
框架提供的 sql 监听事件,只需要在 Provider 的 boot 方法里增加监听回调即可。
目前,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 做一下介绍。
Casbin 是一个高效强大的开源访问控制框架,它支持 ACL、RBAC、ABAC 等多种模型。
Model
,即模型
,是 Casbin 的一个重要组成部分,模型的定义简单而复杂,且充满学问。Model
的作用,是对权限模型的定义,例如:acl
、rbac
、abac
等权限模型。
模型配置主要有五个部分:[request_definition],[policy_definition],[role_definition],[policy_effect] 和 [matchers],分别表示请求定义、策略定义、角色定义、策略效果定义、匹配器,其中 [role_definition] 角色定义是用于基于角色的模型(RBAC),支持用 #
开头表示注释。
[request_definition]
r = sub, obj, act
优先级模型,所谓优先级,是指按一定的顺序加载策略。
优先级高的策略先加载,先加载的策略具有较高的优先级。
PHP-Casbin 目前支持三种模式:隐式优先顺序加载策略、显示优先顺序加载策略、基于角色和用户的层级关系加载策略。
分布式服务,是将多个具有不同或相同功能的服务分散在不同的服务器上,对外提供服务。
那么在分布式服务中,使用 PHP-Casbin 作为权限控制时,不同服务器上的服务的策略要保证是同步的。这里我们主要探讨常驻内存的 PHP 服务,在常驻内存的服务中,PHP-Casbin 一般是单例模式,所有的策略都会加载到内存,性能出色。
多租户
(multi-tenancy)是一种软件架构技术,是实现在多租户
的环境下共用
相同的系统或程序组件,并且保证各用户间的数据隔离
,也可称作域租户
。
PHP-Casbin 不仅提供了全局的RBAC
的权限模型,而且还支持特定域的权限模型。特定租户/域的角色意味着当用户在不同的租户/域中时,用户可以拥有不同的角色,亦拥有不同的权限策略。在大型项目中,特别是在像SaaS
PaaS
这种云服务中,不同的租户需要拥有独立的权限控制,这就非常有用。
PHP-Casbin 是一个非常流行的权限控制框架,支持ACL
RBAC
ABAC
等权限控制模型。
它使用 Matcher
中配置的表达式来做权限决策,不仅提供了非常多的内置函数,而且还可以在Matcher
中指定自定义函数。
如果你的项目还有没有引入Casbin
依赖,则需要安装一下:
composer require casbin/casbin
快速安装,到底有多快?
这里以目前最新的PHP8.2为例,我的电脑尝试了一些10分钟之内搞定,如果网络好可能更快。
PPA个人软件包存档(Personal Package Archive)是一项服务,允许用户上传使用Launchpad构建和发布的Ubuntu源软件包作为apt信息库。
为什么要添加PPA存储库,因为Ubuntu系统带的镜像库中PHP的版本太旧,没有最新的PHP版本。
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
, 包名,包括作者名称和项目名称,以/
分割;包名称可以包含任何字符,包括空格,并且不区分大小写。为了简化安装,建议定义一个不包含非字母数字字符或空格的短名称;
description
,项目描述;
工欲善其事,必先利其器;器欲尽其能,必先得其法。
作为 PHP 工匠,Composer
便是 PHP 工匠们的一大利器之一,下面就介绍一下如何得其法
,进而尽其能
。
假设我们的项目需要用到这个库monolog/monolog
日志库,首先来安装这个库:
Composer
需要 PHP 5.3.2+ 以上版本,它是跨平台的,适用于 Windows、Linux、macOS等系统。
这里的安装以 Linux 为例,Windows 下的安装相对简单,可以参考官方文档:Installation - Linux / Unix / macOS。
首先,下载安装文件
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
专业企业官网建设,塑造企业形象,传递企业价值
系统软件开发,用心思考,用心设计,用心体验
打破技术瓶颈,让不堪重负的项目起死回生
构建全渠道一体化运营能力,实现全链路数字化
文案撰写、营销策划,专注品牌全案
一站式解决企业互联网营销痛点和难题
以技术的力量,改变互联网
联系我们