waglpz/webapp-restapi

Web应用程序RESTful API组件

2.1.0 2024-09-02 11:13 UTC

This package is auto-updated.

Last update: 2024-09-02 23:00:33 UTC


README

该库允许您将Web应用程序作为MVC或RESTful API或两者兼而有之来处理。

需求

PHP 7.4或更高版本(参见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 packet

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