PHP 怎么启动依赖

wen PHP项目 2

本文目录导读:

PHP 怎么启动依赖

  1. Composer(最常用)
  2. Docker 容器中的 PHP
  3. 启动 PHP 内置服务器(开发环境)
  4. 运行 PHP-FPM
  5. 依赖注入容器示例
  6. 使用 PHP 包管理器工具
  7. 环境变量和配置
  8. 完整启动示例
  9. 使用 Supervisor 管理

在 PHP 中启动依赖管理通常指以下几种情况,我将分别说明:

Composer(最常用)

首次安装依赖

# 在项目根目录执行
composer install

安装新依赖

# 安装到生产环境
composer require vendor/package
# 安装到开发环境
composer require --dev vendor/package

更新依赖

# 更新所有依赖
composer update
# 更新特定包
composer update vendor/package

Docker 容器中的 PHP

Dockerfile 示例

FROM php:8.2-fpm
# 安装系统依赖
RUN apt-get update && apt-get install -y \
    git \
    unzip \
    libpq-dev \
    && docker-php-ext-install pdo pdo_mysql
# 安装 Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# 复制项目文件
COPY . /var/www/html
# 安装 PHP 依赖
RUN composer install --no-dev --optimize-autoloader

启动 PHP 内置服务器(开发环境)

# 启动内置服务器
php -S localhost:8000
# 指定路由文件启动
php -S localhost:8000 router.php
# 指定文档根目录
php -S localhost:8000 -t public

运行 PHP-FPM

# 启动 PHP-FPM
php-fpm
# 指定配置文件
php-fpm -c /path/to/php.ini
# 前台运行
php-fpm -F

依赖注入容器示例

<?php
// 简单的依赖注入容器
class Container {
    private $services = [];
    private $instances = [];
    public function set($name, $callable) {
        $this->services[$name] = $callable;
    }
    public function get($name) {
        if (!isset($this->instances[$name])) {
            $this->instances[$name] = $this->services[$name]($this);
        }
        return $this->instances[$name];
    }
}
// 注册服务
$container = new Container();
$container->set('db', function($c) {
    return new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
});
// 获取服务
$db = $container->get('db');

使用 PHP 包管理器工具

使用 Box(PHAR 构建工具)

# 安装 Box
composer global require humbug/box
# 构建 PHAR 文件
box build
# 运行 PHAR 文件
php my-app.phar

使用 Composer 脚本

{
    "scripts": {
        "start": "php -S localhost:8000 -t public",
        "dev": "php artisan serve",
        "test": "phpunit"
    }
}

运行方式:

composer start
composer dev
composer test

环境变量和配置

<?php
// 加载 .env 文件
require_once __DIR__ . '/vendor/autoload.php';
use Dotenv\Dotenv;
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();
// 使用环境变量
$database_host = $_ENV['DB_HOST'];
$database_password = $_ENV['DB_PASSWORD'];

完整启动示例

#!/bin/bash
# start.sh - 项目启动脚本
# 1. 安装依赖
composer install
# 2. 生成应用密钥(Laravel)
php artisan key:generate
# 3. 运行数据库迁移
php artisan migrate
# 4. 启动开发服务器
php artisan serve  # 或者 php -S localhost:8000 -t public

使用 Supervisor 管理

# /etc/supervisor/conf.d/php-worker.conf
[program:php-worker]
command=php /path/to/worker.php
autostart=true
autorestart=true
startsecs=0
user=www-data

启动命令:

supervisorctl start php-worker

选择哪种方式取决于你的具体使用场景,最常见的是使用 Composer 管理 PHP 包依赖,使用 Docker 管理运行时环境。

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