-
PHP读取Excel必须用PhpSpreadsheet,PHPExcel已停维护;需显式映射表头、清洗空格、校验字段、分批处理大文件,并做好错误记录与事务控制。
-
应压低PHP-FPM内存水位、改用Unix域套接字、禁用opcache文件缓存、规范错误日志路径。具体包括:统一pm.*_servers值,rlimit_memory=128M;listen=/var/run/php-fpm.sock并挂载tmpfs;opcache.file_cache为空、validate_timestamps=0;error_log明确指向/var/log/php/error.log。
-
根本原因是PHP静态访问控制基于“调用上下文”:static::绑定运行时类,要求该类自身对成员有访问权;而self::绑定声明类,只要声明类有权限即可。
-
EloquentGlobalScopes能强制加查询条件,但仅限于Eloquent查询路径(select/update/delete/softDelete),不适用于关联预加载默认场景、原生DB查询及未正确注册或被移除的情况。
-
宝塔API需先在面板设置中开启并生成密钥,调用时必须用key、secret、时间戳、路径及排序后参数拼接签名;仅支持HTTPS,超时建议设30秒以上,路径须规范。
-
应MockHTTP通信层而非业务服务类,优先使用Guzzle的MockHandler或拦截curl_exec等I/O函数;需确保响应状态码、headers与真实服务一致,避免复用MockHandler实例,并关闭opcache以保证函数拦截生效。
-
使用PHPDoc规范注释代码并借助phpDocumentor等工具生成API文档,结合环境要求、安装步骤、配置说明和接口示例等使用手册,确保文档与代码同步更新,提升项目可维护性。
-
strpos找不到字符串时返回false,找到首字符在位置0时返回0,二者用==判断均为false,必须用!==false严格比较;其为字节级查找,中文/emoji等多字节字符需用mb_strpos。
-
PHPunlink()在Windows下失败与文件“只读”属性无关,真正原因在于父目录不可写、文件被占用、open_basedir限制或NTFSDELETE权限缺失。
-
根本原因是opcache未启用且realpath_cache_size未配置,导致频繁路径解析和文件读取;应启用opcache、设置realpath缓存、调小PHP-FPM进程数、禁用file_get_contents远程请求、启用systemd-timesyncd同步时间、改用Redis或tmpfs存储session,并确保opcache在redis扩展前加载。
-
phpEnv默认MySQL用旧utf8(utf8mb3),不支持Emoji;必须修改my.ini的mysqld[mysql]三段为utf8mb4,重启服务,并在PHPPDO连接中显式设置charset=utf8mb4及SETNAMESutf8mb4COLLATEutf8mb4_unicode_ci,同时逐级修改库、表、字段字符集并确保前端HTML/meta、HTTP头、PHP响应头统一UTF-8。
-
WordPress6.9首次提供PHP8.5的Beta支持,仅确保核心运行,插件/主题需自行验证兼容性;常见报错包括create_function()调用失败、类型声明冲突及弃用函数警告。
-
MySQL空闲连接不会自动清理,因默认wait_timeout和interactive_timeout为28800秒(8小时),需手动修改my.ini中二者为60秒并重启MySQL服务,同时禁用PHP持久连接、重启Web服务与MySQL。
-
生产环境应精简CI项目包,删除非运行必需的文档、测试、示例配置及未使用组件,仅保留最小依赖集,避免体积虚高与安全风险。
-
宝塔面板安装报错“缺少依赖包”主要指gcc、glibc-devel、libffi-devel、openssl-devel、curl、wget及对应系统的python3-devel或python3-dev;需按CentOS/RHEL系或Ubuntu系分别执行dnf/yum/apt命令安装,且须确保系统源启用、Python3软链正确、时间同步及SELinux策略适配。