Loading

文章分类 -  PHP

摘要:如果我们用到了hyperf框架中的依赖注入的注解语法,但是会出现框架在属性注入阶段无法获取到容器实例的报错,例如: 一:出现的报错: [ERROR] Hyperf\Context\ApplicationContext::getContainer(): Return value must be of 阅读全文
posted @ 2026-02-08 16:12 Carvers 阅读(2) 评论(0) 推荐(0)
摘要:在 PHP 开发中,use 关键字的双重身份常常让开发者感到困惑。今天,我们就来彻底揭开它的神秘面纱,重点探讨一个核心问题:引入后的 $this 到底指向谁? 一、根本区别:两种完全不同的机制 让我们先明确一个基本事实:类外部的 use 和类内部的 use 是完全不同的语言特性。 类外部的 use: 阅读全文
posted @ 2026-02-04 20:42 Carvers 阅读(2) 评论(0) 推荐(0)
摘要:1. 概述 Async-Queue 是 Hyperf 提供的异步消息队列组件,基于 Redis 实现,支持消息的延迟投递和失败重试。 2. 安装 composer require hyperf/async-queue 3. 配置 3.1 配置文件 config/autoload/async_queu 阅读全文
posted @ 2026-01-27 14:49 Carvers 阅读(5) 评论(0) 推荐(0)
摘要:📊 核心函数总览表 函数 输入示例 输出示例 命名风格 主要用途 辅助函数别名 Str::studly() hello_worlduser-profilefirst name HelloWorldUserProfileFirstName 大驼峰(PascalCase) 类名、模型名、控制器名 st 阅读全文
posted @ 2026-01-15 15:37 Carvers 阅读(2) 评论(0) 推荐(0)
摘要:​PHP 8 及其后续版本(8.1, 8.2, 8.3)引入了一系列强大的新特性,极大地提升了语言的表现力、类型安全性和性能。下面我将为你详细梳理每个版本的主要新特性。 PHP 8.0 - 一次重大的里程碑式更新 PHP 8.0 是继 PHP 7.0 之后又一个重大版本,引入了 JIT 编译器、联合 阅读全文
posted @ 2025-11-06 10:26 Carvers 阅读(87) 评论(0) 推荐(0)
摘要:​PHP 8.0 引入了 match 表达式,它是一种更简洁、更强大的条件分支结构,可以看作是 switch 语句的增强版。 基本语法 $result = match (subject_expression) { pattern1 => result1, pattern2 => result2, / 阅读全文
posted @ 2025-10-14 16:37 Carvers 阅读(8) 评论(0) 推荐(0)
摘要:​在 PHP 8.x 的 NTS(非线程安全) 版本里,扩展文件没有添加默认的加载路径: 1. 确认文件存在 打开 D:\phpstudy_pro\Extensions\php\php8.2.9nts\ext 目录下必须有 openssl.dll 如果没有,说明 phpstudy 的 PHP 8.2 阅读全文
posted @ 2025-09-30 19:32 Carvers 阅读(27) 评论(0) 推荐(0)
摘要:Continue as root/super user [yes]? Composer 检测到当前用 root 身份运行,出于安全提示需要手动确认。 要让脚本全自动通过,有三种办法: 1. 环境变量(最干净,推荐) 在调用 Composer 之前导出: export COMPOSER_ALLOW_S 阅读全文
posted @ 2025-09-29 13:13 Carvers 阅读(26) 评论(0) 推荐(0)
摘要:​ 批量改完代码后,只要「类名/路径/注解」有变动,一律走下面 3 条命令,保证运行时、注解、自动加载全部重新生成,避免任何旧缓存导致的奇怪报错。 1. 清掉 Hyperf 的注解/代理/AOP 编译缓存 # 在项目根目录 rm -rf runtime/container 这条最重要!改注解、改路径 阅读全文
posted @ 2025-09-29 13:11 Carvers 阅读(28) 评论(0) 推荐(0)
摘要:在 Hyperf 里,「注解路由」与「routes.php 文件路由」是两条完全独立的注册通道: 注解由框架启动时扫描类产生,不写任何 routes.php 代码即可生效; routes.php 是手动写 \Hyperf\HttpServer\Router\Router 的静态方法,与注解无关,但可 阅读全文
posted @ 2025-09-26 11:47 Carvers 阅读(12) 评论(0) 推荐(0)
摘要:✅ 方式一:使用 #[AutoController](自动路由,支持 GET / POST) 适合简单场景,无需手动指定路由路径,Hyperf 会自动为每个 public 方法 生成路由,同时支持 GET 和 POST。 ✅ 示例代码: <?php declare(strict_types=1); 阅读全文
posted @ 2025-09-26 11:46 Carvers 阅读(18) 评论(0) 推荐(0)
摘要:Laravel 本身没有 Java/Spring 那种 “运行时注解扫描” 机制,但 PHP 8 推出原生 Attribute(属性) 以后,Laravel 社区与部分官方组件已经可以用“类注解”风格来简化代码。下面把 “到底有没有、怎么用、能干什么、不能干什么” 一次性讲透。 一、先分清三个概念 阅读全文
posted @ 2025-09-16 19:32 Carvers 阅读(20) 评论(0) 推荐(0)
摘要:Hyperf 是一个基于 Swoole 协程的高性能 PHP 企业级框架,专为微服务和中间件架构设计。以下是其核心特性和定位的全面解析: 一、框架定位 特性 说明 高性能 基于 Swoole 协程,单机支持 10万+ QPS(远超传统 PHP-FPM) 企业级 为复杂业务场景设计(支付系统/即时通讯 阅读全文
posted @ 2025-08-09 16:43 Carvers 阅读(442) 评论(0) 推荐(0)
摘要:在 PHP 中,cURL 是一个强大的库,用于与各种服务器进行通信(支持 HTTP、HTTPS、FTP 等协议)。以下是 cURL 的详细实现步骤和示例代码: 基本使用步骤 初始化会话:curl_init() 设置选项:curl_setopt() 执行请求:curl_exec() 关闭会话:curl 阅读全文
posted @ 2025-07-11 15:34 Carvers 阅读(54) 评论(0) 推荐(0)
摘要:在 PHP 中,如果你有一个二维数组,并希望使用其中某个字段的值作为新数组的键(key),可以使用 array_column() 和 array_combine(),或者使用 foreach 循环来实现。 ✅ 示例:使用 array_column() 和 array_combine() 假设你有如下 阅读全文
posted @ 2025-07-10 11:10 Carvers 阅读(36) 评论(0) 推荐(0)
摘要:<?php /** * 解压文件 */ $zipFile = 'files.zip'; // ZIP 文件路径 $targetDir = 'unzipped_files'; // 解压目标目录 // 确保目标目录存在 if (!is_dir($targetDir)) { mkdir($targetD 阅读全文
posted @ 2025-07-04 15:12 Carvers 阅读(11) 评论(0) 推荐(0)
摘要:1. 查看 ZipArchive 扩展是否安装 <?php $zip = new ZipArchive; echo "ZipArchive class is working."; die; 执行php文件查看在运行 2. 压缩文件【案例】 <?php $targetDir = 'D:\workspa 阅读全文
posted @ 2025-07-04 15:08 Carvers 阅读(4) 评论(0) 推荐(0)
摘要:1. 全局作用域 全局作用域中的变量在脚本的任何地方都可以访问,但在函数内部需要使用 global 关键字。 <?php $global_var = "I am global"; function testGlobal() { global $global_var; echo $global_var 阅读全文
posted @ 2025-06-23 14:17 Carvers 阅读(14) 评论(0) 推荐(0)
摘要:SplStack 是 PHP 标准库(SPL)提供的一个栈(Stack)数据结构实现,采用后进先出(LIFO)的原则。以下是关于 SplStack 的详细介绍和使用方法: 核心概念 SplStack 是基于双向链表(SplDoublyLinkedList)实现的栈结构。默认情况下,它的迭代模式是 S 阅读全文
posted @ 2025-06-18 18:21 Carvers 阅读(4) 评论(0) 推荐(0)
摘要:在 PHP 中,可变变量是指一个变量的名称可以动态地被指定或改变。简单来说,可变变量的特点是“变量的名称本身也是一个变量”。它允许你在运行时动态地构建变量的名称,然后使用该变量的值。以下是详细的解释和使用案例: 一:可变变量的基本语法 可变变量的语法形式是用 $ 符号加上一个变量名,这个变量名本身也 阅读全文
posted @ 2025-06-18 17:12 Carvers 阅读(33) 评论(0) 推荐(0)