PHP后端开发需保障服务稳、快、可维护,涵盖路由分发、防SQL注入、规范接口输出、并发隔离及日志管理等核心能力。
PHP后端开发不是写网页表单提交逻辑就完事了,而是要让整个服务在用户看不见的地方稳、快、可维护——尤其当流量突增、数据库慢查询频发、第三方接口超时的时候,你写的那段 foreach 循环和 try...catch 里怎么写,直接决定用户看到的是“加载中”还是“502 Bad Gateway”。
用户点一个链接或发个 POST,PHP 后端得先接住这个请求,识别 URL 路径、方法(GET/POST)、参数($_GET、$_POST、$_SERVER['REQUEST_URI']),再交给对应逻辑。现代框架如 Laravel 或 ThinkPHP 用路由配置替代手工 if-else 判断,但底层仍是靠 $_SERVER['REQUEST_METHOD'] 和正则或前缀匹配实现。
$_REQUEST 默认包含 GET/POST/COOKIE,容易引发参数覆盖,敏感操作务必显式读取 $_POST 或 file_get_contents('php://input')
mod_rewrite,Nginx 要配 try_files,否则会 405PHP 连 MySQL 最常用的是 PDO 或 MySQLi,核心不是“能不能查出数据”,而是“查得安全、查得可控、查得可追踪”。裸写 mysql_query("SELECT * FROM user WHERE id = " . $_GET['id']) 在今天等于主动交出服务器权限。
$stmt = $pdo->prepare("SELECT * FROM orders WHERE status = ? AND created_at > ?"); $stmt->execute([$status, $since]);
INSERT,改用 INSERT INTO ... VALUES (...), (...), (...) 单条语句SELECT 走从库,INSERT/UPDATE/DELETE 必须走主库,框架里常通过 DB::connection('write') 显式指定前端调的不是 PHP 文件,是接口。返回 JSON 不只是 echo json_encode($data) 就完事——HTTP 状态码、Content-Type、跨域头、错误结构,全得手动或由框架统一管控。
200 OK,创建资源用 201 Created,重定向用 302 或 307,客户端错误统一用 400,权限问题用 401 或 403,服务异常才用 500

header('Content-Type: application/json; charset=utf-8');,否则前端 response.json() 可能解析失败Access-Control-Allow-Origin: *,带 cookie 时必须设为具体域名,并加 Access-Control-Allow-Credentials: true
PHP-FPM 是进程/线程模型,每个请求独占一个 worker,看似天然隔离,但共享内存(Redis)、文件锁(flock)、数据库连接池、临时文件路径冲突,都是并发下容易翻车的点。
$_FILES['file']['tmp_name'] 做后续处理,先 move_uploaded_file() 到明确路径,否则高并发时 tmp 目录可能被清理或覆盖DECR + GET 组合,或数据库行锁(SELECT ... FOR UPDATE),避免超卖error_log() 写文件,尤其在容器环境,推荐用 Monolog 写到 stdout 或集中式日志系统(如 ELK),否则日志分散难排查真正卡住人的往往不是语法,而是当缓存雪崩发生时你是否记得清 redis->del() 和 redis->flushDB() 的影响范围,或是当慢查询告警响起时,你第一反应是看 EXPLAIN 还是重启 MySQL。