-
PSR-12是PHP开发的运行前提而非可选风格,要求命名统一(如$userEmail、getUserById)、4空格缩进、花括号位置规范、namespace/use后空行、常量全大写下划线、禁用?>结束标签,并需通过phpcs等工具嵌入编辑与提交流程强制执行。
-
with()未真正解决N+1因未控字段、数量及外键:需闭包中显式field()精简字段、limit()限制一对多数量、select包含外键以确保正确关联匹配。
-
中间件中调用Inertia::render()无反应,因该方法需在web中间件组路由中执行并return响应;中间件handle()内直接调用不return则响应被丢弃,请求继续流转或返回404。
-
事务回滚失败主因是表引擎非InnoDB、autocommit开启、隐式提交语句触发、undo日志空间不足;需先确认ENGINE=InnoDB、SETautocommit=0、避免DDL语句、检查INNODBSTATUS及磁盘空间。
-
php-S默认监听127.0.0.1,局域网访问需改为php-S0.0.0.0:8000router.php;同时须配置系统防火墙放行对应端口,并确认Web服务器(Apache/Nginx)监听地址为0.0.0.0而非本地回环。
-
Telescope默认仅在APP_ENV=local且APP_DEBUG=true时启用,需检查环境配置、运行telescope:install和migrate、注册TelescopeServiceProvider、开启对应watcher并配置show=true显示SQL参数,严禁在生产环境启用。
-
预加载关联时字段裁剪必须在with()闭包中调用field(),且外键和主键不可省略,否则关联数据为null;field()作用于关联模型而非主模型,多关联需独立闭包声明并手动处理字段别名冲突。
-
Git在phpEnv中HTTPS报错需设https.sslVerify"false"而非http.sslVerify,因phpEnv内置旧版Git易受中间人劫持;优先尝试此配置,无效时检查sslCAInfo路径或升级Git,更安全方案是切换SSH协议。
-
VSCodePHP断点不生效主因是xdebug.mode=debug未正确配置、xdebug.client_port与launch.json中port不一致、pathMappings映射错位;需用php--ini和php-m|grepxdebug确认CLI加载的php.ini及Xdebug启用状态,并严格按Xdebug3规范配置参数与路径映射。
-
PHP中try-catch只捕获Exception及Throwable(PHP7+)及其子类,不捕获E_NOTICE、E_WARNING等传统错误;需用catch(Throwable$e)才能捕获Error类致命错误,且finally中return会覆盖try/catch的返回值。
-
phpEnv无法安装或运行OpenTSDB,因其仅为PHP本地环境套件,不提供Java、HBase、ZooKeeper等OpenTSDB必需的JVM及分布式组件支持;正确做法是单独部署OpenTSDB服务,PHP仅通过HTTPAPI(如cURL)调用其4242端口。
-
必须选yii\queue\amqp_interop\Queue——它是Yii官方唯一活跃维护的AMQP驱动,兼容PHP8+和RabbitMQ3.10+,解决旧驱动因协议不匹配导致的TLS/vhost/SASL失败、FRAME_ENDmissing等静默错误。
-
PHP高并发需聚焦真实瓶颈:I/O密集型选Swoole协程(须run()包裹、禁用阻塞调用)、CPU密集型慎用pcntl_fork(仅CLI有效、须exit+wait回收),多线程仅限ZTS环境;消息队列才是解耦削峰通用解法。
-
Apache可通过添加多个Listen指令并配置对应VirtualHost实现多端口监听,如Listen8080和Listen8081,并在VirtualHost中绑定不同DocumentRoot与ServerName,再配合hosts文件映射域名到127.0.0.1,即可通过http://dev1.test:8080等访问独立站点。
-
whereColumn用于数据库字段间比较,生成a=b类SQL,避免字符串误判;支持运算符和跨表别名,但不接受函数右值,需配合whereRaw使用;注意NULL处理与版本差异。