本文目录导读:

我来帮您梳理 PHP 项目从零开始的完整流程:
1️⃣ 环境准备
安装开发环境
选择以下任一方式:
集成环境(推荐新手)
- XAMPP(Windows/Mac/Linux)
- WampServer(Windows)
- MAMP(Mac)
Docker 环境(推荐进阶)
# 使用 docker-compose.yml
version: '3'
services:
php-apache:
image: php:8.2-apache
ports:
- "8080:80"
volumes:
- ./src:/var/www/html
2️⃣ 项目初始化
创建项目目录结构
my-project/
├── public/ # 公开访问目录
│ ├── index.php # 入口文件
│ ├── css/
│ ├── js/
│ └── images/
├── src/ # 源码目录
│ ├── controllers/
│ ├── models/
│ ├── views/
│ └── helpers/
├── config/ # 配置文件
│ ├── app.php
│ └── database.php
├── vendor/ # 依赖包
└── .htaccess # URL重写配置
基础入口文件(public/index.php)
<?php
// 错误显示(开发环境)
ini_set('display_errors', 1);
error_reporting(E_ALL);
// 设置时区
date_default_timezone_set('Asia/Shanghai');
// 加载配置
require_once __DIR__ . '/../config/app.php';
// 自动加载
spl_autoload_register(function ($class) {
$prefix = 'App\\';
$base_dir = __DIR__ . '/../src/';
$len = strlen($prefix);
if (strncmp($prefix, $class, $len) !== 0) {
return;
}
$relative_class = substr($class, $len);
$file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
if (file_exists($file)) {
require $file;
}
});
// 简单路由示例
$uri = $_SERVER['REQUEST_URI'];
$method = $_SERVER['REQUEST_METHOD'];
// 根据路由执行对应操作
if ($uri === '/' && $method === 'GET') {
echo "Welcome to PHP Project!";
} else {
http_response_code(404);
echo "404 Not Found";
}
3️⃣ 数据库连接
配置文件(config/database.php)
<?php
return [
'host' => 'localhost',
'database' => 'my_db',
'username' => 'root',
'password' => '',
'charset' => 'utf8mb4',
];
数据库连接(src/Database.php)
<?php
namespace App;
use PDO;
use PDOException;
class Database {
private $connection;
public function __construct() {
$config = require __DIR__ . '/../config/database.php';
try {
$dsn = "mysql:host={$config['host']};dbname={$config['database']};charset={$config['charset']}";
$this->connection = new PDO($dsn, $config['username'], $config['password']);
$this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Connection failed: " . $e->getMessage());
}
}
public function getConnection() {
return $this->connection;
}
}
4️⃣ 使用 Composer(推荐)
安装 Composer
# Linux/Mac curl -sS https://getcomposer.org/installer | php # Windows 下载安装包 https://getcomposer.org/download/
创建 composer.json
composer init # 或手动创建
{
"name": "my/project",
"description": "My PHP Project",
"type": "project",
"require": {
"php": ">=8.0",
"vlucas/phpdotenv": "^5.5"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
使用 .env 环境变量
# .env 文件 DB_HOST=localhost DB_NAME=my_database DB_USER=root DB_PASS=secret APP_ENV=development
<?php // 加载 .env use Dotenv\Dotenv; $dotenv = Dotenv::createImmutable(__DIR__); $dotenv->load(); // 使用环境变量 $dbHost = $_ENV['DB_HOST'];
5️⃣ 使用框架(效率更高)
流行框架选择
Laravel(最流行)
composer create-project laravel/laravel my-app
Symfony(企业级)
composer create-project symfony/skeleton my-app
ThinkPHP(国内常用)
composer create-project topthink/think tp-app
Laravel 项目结构示例
my-app/
├── app/ # 应用核心代码
├── bootstrap/ # 引导文件
├── config/ # 配置文件
├── database/ # 数据库迁移
├── public/ # 公共访问目录
├── resources/ # 视图和资源文件
├── routes/ # 路由文件
├── storage/ # 存储文件
├── tests/ # 测试文件
└── vendor/ # 依赖包
Laravel 快速创建功能
# 创建控制器 php artisan make:controller UserController # 创建模型 php artisan make:model User # 创建迁移文件 php artisan make:migration create_users_table # 运行迁移 php artisan migrate # 创建中间件 php artisan make:middleware AuthMiddleware
6️⃣ 开发实用技巧
调试工具
<?php // 打印变量 var_dump($variable); print_r($array); // 使用 Xdebug(配置文件) xdebug.mode=debug xdebug.start_with_request=yes
日志记录
<?php
// 自定义日志函数
function write_log($message, $level = 'INFO') {
$logFile = __DIR__ . '/../logs/app.log';
$timestamp = date('Y-m-d H:i:s');
$logMessage = "[{$timestamp}] [{$level}] {$message}" . PHP_EOL;
file_put_contents($logFile, $logMessage, FILE_APPEND | LOCK_EX);
}
// 使用
write_log('User logged in', 'INFO');
7️⃣ 项目启动
使用 PHP 内置服务器
# 切换到项目目录 cd my-project/public # 启动服务器 php -S localhost:8080 # 指定文档根目录 php -S localhost:8080 -t public
使用框架开发服务器(Laravel)
php artisan serve # 访问 http://localhost:8000
📋 快速启动模板
创建以下 start.sh 脚本一键初始化:
#!/bin/bash
# 创建项目目录
mkdir -p my-project/{public,src/{controllers,models,views},config}
# 创建基本文件
cat > public/index.php <<EOF
<?php
echo "Hello, PHP!";
EOF
cat > config/app.php <<EOF
<?php
return [
'name' => 'My PHP App',
'version' => '1.0.0',
];
EOF
# 初始化 Composer
composer init -n --require=php:">=8.0"
echo "✅ Project created successfully!"
echo "Run: cd my-project && php -S localhost:8080 -t public"
🎯 建议学习路径
- 新手入门:从 XAMPP + 纯 PHP 开始
- 进阶提升:学习 Composer + MVC 设计模式
- 生产开发:使用 Laravel 或 Symfony 框架
- 工程化:加入测试、CI/CD、Docker 部署
选择最适合您当前阶段的方法开始吧!有其他具体问题随时问我。