技术圈开发者交流群:

Ollama 让开源大语言模型触手可及

前有 ChatGPT 的横空出世,现有 DeepSeek 的后生可畏。

在人工智能(AI)飞速发展的今天,大语言模型(LLMs)百家争鸣、群英荟萃,AI已经成为人们茶余饭后必备的话题,更是人们工作、学习中必备的工具。

PHP 02月24日 8750

在 Linux 中如何开启 ssh 远程连接

无论你是什么方向的开发者,在日常工作中必不可少的要和 Linux 系统打交道。在打交道之前,就必须先远程连接上去,应该很少人人会使用VNC远程连接吧,更何况很少作为开发的Linux系统不会安装图形库界面吧,那就必须得使用命令行SSH远程连接了。

要安装SSH,肯定的直接在机器上操作,物理机你就接个键盘、显示器,虚拟机直接用界面连接操作。

PHP 2024年07月20日 146

在 Laravel 中使用 Vite 来构建静态资源

之前做Laravel项目,一直使用的是Laravel Mix打包静态资源。但是随着Vite的横空出世,Laravel已经默认使用Vite来打包静态资源了。

在此之前,你需要创建一个Laravel项目,并准备PHPNode.js环境。

PHP 2024年06月28日 1029

在 Laravel 中结合 Vite 搭建 Vue 应用

Laravel 是一个优雅的 PHP WEB框架,在早期的版本中,一般是采用Mix搭配webpack来构建前端资源。 Vue 是一个渐进式 JavaScript 框架,Vite 是下一代前端开发和构建工具。那么这个组合起来,堪称绝美

下面是我所使用的版本:

  • PHP 8.2
  • Laravel 11.8.0
  • Node 20.13
  • Vite 5.0
  • Vue 3.4
PHP 2024年05月20日 6706

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

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

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

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

这里以 Laravel 11 为例,参考官方文档:Listening for Query Events

PHP 2024年04月19日 782

在 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 做一下介绍。

Remi 源包含了较新的 PHP 版本,使用 Yum 来添加 Remi 源,可能需要提前安装 epel-release。

PHP 2023年12月09日 353

Casbin 中 Model 的语法详解

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

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

PHP 2023年09月20日 3703

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

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

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

PHP 2023年07月11日 8711

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

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

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

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

多商户电商平台

商户1,用户1,属于管理员角色
      商品1

商户2,用户2,属于管理员角色
      商品2
PHP 2023年06月03日 1222

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

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

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

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

composer require casbin/casbin
PHP 2023年05月20日 709

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

快速安装,到底有多快?

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

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

PHP 2022年11月02日 816

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日 1843

Composer 基本使用

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

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

PHP 2020年03月26日 2020
鄂ICP备19028750号-1 @copyright 2024 tech1024.com