之前做Laravel项目,一直使用的是Laravel Mix
打包静态资源。但是随着Vite
的横空出世,Laravel已经默认使用Vite
来打包静态资源了。
在此之前,你需要创建一个Laravel项目,并准备PHP
和Node.js
环境。
Laravel
的Vite
插件是laravel-vite-plugin
。项目默认的package.json
中的依赖项已经包含了,只需要安装一下即可。
之前做Laravel项目,一直使用的是Laravel Mix
打包静态资源。但是随着Vite
的横空出世,Laravel已经默认使用Vite
来打包静态资源了。
在此之前,你需要创建一个Laravel项目,并准备PHP
和Node.js
环境。
Laravel
的Vite
插件是laravel-vite-plugin
。项目默认的package.json
中的依赖项已经包含了,只需要安装一下即可。
Laravel
是一个优雅的 PHP WEB框架,在早期的版本中,一般是采用Mix
搭配webpack
来构建前端资源。
Vue
是一个渐进式 JavaScript 框架,Vite
是下一代前端开发和构建工具。那么这个组合起来,堪称绝美
。
下面是我所使用的版本:
在开发过程中,难免需要对 sql 语句的问题排查,我们可以把程序执行中运行的 sql 语句记录到日志中。
甚至,还可以记录 sql 语句的执行时间,对执行时间过长的 sql 的语句增加预警等。
Laravel
框架提供的 sql 监听事件,只需要在 Provider 的 boot 方法里增加监听回调即可。
这里以 Laravel 11 为例,参考官方文档:Listening for Query Events。
微服务是一种软件技术架构,是将一个大型的单个应用或服务拆分成多个微服务,可扩展单个组件而不是整个应用程序堆栈,从而满足服务等级需求。
Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关框架及工具,是一个 Web 应用程序框架,具有富有表现力、优雅的语法。
它致力于给开发者提供完整的微服务研发体验,通过整合,可以产出一套完整的微服务治理体系,从而让开发者更加专注于业务交付。
etcd
是一个高可用的分布式键值(key-value)数据库,etcd基于Go语言实现,在分布式系统被广泛应用。它的设计目标是为分布式系统提供一个高可用、强一致性且易于使用的基础组件。
这里直接使用官方已经编译好的。
指定版本,并使用curl下载:
ETCD_VER=v3.4.13
DOWNLOAD_URL=https://github.com/etcd-io/etcd/releases/download
curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
目前,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 做一下介绍。
Remi
源包含了较新的 PHP 版本,使用 Yum 来添加 Remi 源,可能需要提前安装 epel-release。
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
现在,在 CentOS 中使用yum
安装软件时,报上面的错误,这是由于 CentOS 官方已经对 CentOS 7 的 yum 源停止维护了。
如果还在继续使用 CentOS 7 系统的,则需要更换第三方 yum 源,很多大厂都提供有镜像源,不仅如此国内的源速度和稳定性都要好一些,这里以阿里云的 Yum 源为例,介绍如何更换 CentOS 7 的 Yum 源。
新装的 CentOS 系统没有网络,那么我们需要配置网络信息,并不像在 Windows 中打开控制面板-网络连接中可以图形化的配置网络信息。在 Linux 中都需要在命令行中进行,查看网卡接口信息、编辑网络连接信息、再重启网卡等一系列命令行操作,不好记容易忘,这里简单做个笔记,方便以后用到的时候查看备用。
在 Linux 中查看网络接口信息,一般有ifconfig
、ip addr
等,但是最小化安装的系统通常是没有ifconfig
命令的。
Casbin 是一个高效强大的开源访问控制框架,它支持 ACL、RBAC、ABAC 等多种模型。
Model
,即模型
,是 Casbin 的一个重要组成部分,模型的定义简单而复杂,且充满学问。Model
的作用,是对权限模型的定义,例如:acl
、rbac
、abac
等权限模型。
模型配置主要有五个部分:[request_definition],[policy_definition],[role_definition],[policy_effect] 和 [matchers],分别表示请求定义、策略定义、角色定义、策略效果定义、匹配器,其中 [role_definition] 角色定义是用于基于角色的模型(RBAC),支持用 #
开头表示注释。
优先级模型,所谓优先级,是指按一定的顺序加载策略。
优先级高的策略先加载,先加载的策略具有较高的优先级。
PHP-Casbin 目前支持三种模式:隐式优先顺序加载策略、显示优先顺序加载策略、基于角色和用户的层级关系加载策略。
优先级模式的配置在model.conf
中的policy_effect
中配置。
专业企业官网建设,塑造企业形象,传递企业价值
系统软件开发,用心思考,用心设计,用心体验
打破技术瓶颈,让不堪重负的项目起死回生
构建全渠道一体化运营能力,实现全链路数字化
文案撰写、营销策划,专注品牌全案
一站式解决企业互联网营销痛点和难题
以技术的力量,改变互联网
联系我们