nikolaposa/phoundation

简化PHP应用的启动步骤。

3.1.0 2023-02-09 20:24 UTC

This package is auto-updated.

Last update: 2024-09-10 00:12:33 UTC


README

Build Status Code Quality Code Coverage Latest Version PDS Skeleton

Phoundation(发音与“foundation”相同)简化了PHP应用的启动步骤。

安装

首选的安装方法是使用Composer。运行以下命令安装最新版本的包并将其添加到项目的composer.json

composer require nikolaposa/phoundation

目的

现代PHP应用的启动通常包括以下步骤:

  1. 配置加载
  2. 依赖注入容器初始化

Phoundation通过抽象启动过程,旨在减少应用启动逻辑中重复代码的数量。

用法

给定配置文件

config/global.php

return [
    'db' => [
        'driver' => 'pdo_mysql',
        'host' => 'localhost',
        'user' => 'root',
        'password' => 'secret',
        'dbname' => 'test',
    ],
    'dependencies' => [
        'factories' => [
            \PDO::class => function () {
                return new \PDO('sqlite::memory:');
            },
            'My\\Web\\Application' => My\Web\ApplicationFactory::class,
        ]
    ],
];

config/local.php

return [
    'db' => [
        'user' => 'admin',
        'password' => '1234',
    ],
];

创建一个启动脚本,通常位于src/bootstrap.php

use Phoundation\Bootstrap;
use Phoundation\Config\FileConfigLoader;
use Phoundation\DependencyInjection\LaminasServiceManagerFactory;

$bootstrap = new Bootstrap(
    new FileConfigLoader(glob(sprintf('config/{{,*.}global,{,*.}%s}.php', getenv('APP_ENV') ?: 'local'), GLOB_BRACE)),
    new LaminasServiceManagerFactory()
);

return $bootstrap();

在您的Web应用根目录中加载启动脚本(例如 public/index.php

/* @var \Psr\Container\ContainerInterface $diContainer */
$diContainer = require  __DIR__ . '/../src/bootstrap.php';

$diContainer->get('My\\Web\\Application')->run();

致谢

许可证

在MIT许可证下发布 - 有关详细信息,请参阅许可证文件