nikolaposa / phoundation
简化PHP应用的启动步骤。
3.1.0
2023-02-09 20:24 UTC
Requires
- php: ^7.4 || ^8.0
- psr/container: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.1
- laminas/laminas-servicemanager: ^3.4
- phpstan/phpstan: ^0.12.18
- phpstan/phpstan-phpunit: ^0.12.6
- phpunit/phpunit: ^8.0
- psr/log: ^1.1
Suggests
- laminas/laminas-servicemanager: In order to use LaminasServiceManagerFactory
This package is auto-updated.
Last update: 2024-09-10 00:12:33 UTC
README
Phoundation(发音与“foundation”相同)简化了PHP应用的启动步骤。
安装
首选的安装方法是使用Composer。运行以下命令安装最新版本的包并将其添加到项目的composer.json
composer require nikolaposa/phoundation
目的
现代PHP应用的启动通常包括以下步骤:
- 配置加载
- 依赖注入容器初始化
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许可证下发布 - 有关详细信息,请参阅许可证文件。