PHP 怎么PHP 项目起始

wen PHP项目 2

本文目录导读:

PHP 怎么PHP 项目起始

  1. 1️⃣ 环境准备
  2. 2️⃣ 项目初始化
  3. 3️⃣ 数据库连接
  4. 4️⃣ 使用 Composer(推荐)
  5. 5️⃣ 使用框架(效率更高)
  6. 6️⃣ 开发实用技巧
  7. 7️⃣ 项目启动
  8. 📋 快速启动模板
  9. 🎯 建议学习路径

我来帮您梳理 PHP 项目从零开始的完整流程:

1️⃣ 环境准备

安装开发环境

选择以下任一方式:

集成环境(推荐新手)

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"

🎯 建议学习路径

  1. 新手入门:从 XAMPP + 纯 PHP 开始
  2. 进阶提升:学习 Composer + MVC 设计模式
  3. 生产开发:使用 Laravel 或 Symfony 框架
  4. 工程化:加入测试、CI/CD、Docker 部署

选择最适合您当前阶段的方法开始吧!有其他具体问题随时问我。

抱歉,评论功能暂时关闭!