waglpz / webapp
Web 应用组件
2.1.0
2024-09-02 10:17 UTC
Requires
- php: ^8.2
- ext-apcu: *
- ext-fileinfo: *
- ext-intl: *
- ext-json: *
- ext-mbstring: *
- ext-mysqli: *
- ext-pcntl: *
- ext-pdo: *
- ext-pdo_mysql: *
- aidphp/http: dev-master
- aura/sql: ^5.0
- nikolaposa/monolog-factory: ^3.1
- ocramius/generated-hydrator: ^4.6
- ramsey/uuid: ^4.7
- slim/php-view: ^3.2
- symfony/dotenv: ^v6.2
- waglpz/config: ^2.1
- waglpz/di-container: ^2.1
- waglpz/webapp-routing: ^2.1
- webmozart/assert: ^1.11
Requires (Dev)
- doctrine/coding-standard: ^11.1
- nunomaduro/mock-final-classes: ^1.2
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-doctrine: ^1.3
- phpstan/phpstan-phpunit: ^1.1
- phpstan/phpstan-strict-rules: ^1.5
- phpstan/phpstan-symfony: ^1.1
- phpstan/phpstan-webmozart-assert: ^1.1
- phpunit/phpunit: ^10.0
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.7
- symfony/var-dumper: ^7.0
README
该库使您能够将 Web 应用作为 MVC 来操作。
要求
PHP 8.2 或更高版本(见 composer.json)
安装
composer require waglpz/webapp
示例 public/index.php
用于浏览器测试
<?php declare(strict_types=1); /** * when testing wepapp then create /public Directory as DocumentRoot and insert index.php */ use Psr\Http\Message\ServerRequestInterface; use Symfony\Component\Dotenv\Dotenv; use Waglpz\Webapp\App; use function Waglpz\Webapp\container; require __DIR__ . '/../vendor/autoload.php'; const PROJECT_CONFIG_DIRECTORY = __DIR__ . '/../config'; (new Dotenv())->bootEnv(__DIR__ . '/../.env'); /* phpcs:disable */ if (! \defined('APP_ENV')) { \define('APP_ENV', $_SERVER['APP_ENV'] ?? 'dev'); } /* phpcs:enable */ $container = container(); $app = $container->get(App::class); $request = $container->get(ServerRequestInterface::class); \assert($app instanceof App && $request instanceof ServerRequestInterface); $app->run($request);
Docker
构建包含 php 和 composer 的 Docker 容器,以便在容器内工作
docker build --force-rm --build-arg APPUID=$(id -u) --build-arg APPUGID=$(id -g) --tag waglpz/webapp .docker/
使用 bash 启动容器
docker run --user $(id -u):$(id -g) --rm -ti -v $PWD:/app -v $PWD/.docker/ waglpz/webapp bash
使用 bash 和 xdebug 启动容器
docker run \ --user $(id -u):$(id -g) \ --rm \ -ti \ -v $PWD:/app \ -v $PWD/.docker/ \ -v $PWD/.docker/php/php-ini-overrides.ini:/usr/local/etc/php/conf.d/99-overrides.ini \ waglpz/webapp bash
使用 bash 和 xdebug 作为 root 用户启动容器,例如安装 apt-get 软件包
docker run \ --rm \ -ti \ -v $PWD:/app \ -v $PWD/.docker/ \ -v $PWD/.docker/php/php-ini-overrides.ini:/usr/local/etc/php/conf.d/99-overrides.ini \ waglpz/webapp bash
代码质量和测试
要检查代码风格违规,运行
composer cs-check
要自动修复(可修复)的代码风格违规,运行
composer cs-fix
要检查静态类型违规,运行
composer cs-fix
要检查回归,运行
composer test
要一次性检查所有违规,运行
composer check