轨道器/卫星应用程序

易于使用的 Event & Middleware 微型框架,由流行的项目和 PSR 支持

安装: 27

依赖关系: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 1

开放问题: 2

类型:项目

0.4.2 2022-10-27 17:43 UTC

README



                       🌐
                     🛰️
                   ·          
                · 
     🛰️🛰️️   ·
    🛰️🌐🛰️   ·  ·  · 🛰️🌐
     🛰️🛰️️

 

易于使用的 Event & Middleware 框架,由流行的微库支持,并基于 PSR

支持 PHP 8.1+ 和 composer

TL;DR

快速开发入门

composer create-project orbiter/satellite-app ./satellite

cd ./satellite

# create `.env` file, 
# add for local-dev: `env=local`
touch .env 

# start PHP Dev Server
cd web && php -S localhost:3333 ./index.php display_errors=0

# or point the Apache Root to `/web/`
# or point the NGINX entry to `/web/index.php`
# or use Docker: `docker-compose up`

在浏览器中打开: http://localhost:3333

查看文件

设置

在文件夹 satellite 中使用 composer 安装应用程序骨架和依赖关系

# with composer installed on machine:
composer create-project orbiter/satellite-app satellite

# with composer and docker on windows:
docker run -it --rm -v %cd%/satellite:/app composer create-project orbiter/satellite-app .
docker run -it --rm -v %cd%/satellite:/app composer create-project --stability=dev orbiter/satellite-app:dev-master .

# with composer and docker on unix:
docker run -it --rm -v `pwd`/satellite:/app composer create-project orbiter/satellite-app .
docker run -it --rm -v `pwd`/satellite:/app composer create-project --stability=dev orbiter/satellite-app:dev-master .

# go into project folder:
cd ./satellite

运行方式

Linux,PHP 开发服务器

设置正确的用户权限,然后启动并打开 http://localhost:3333

chmod +x start.sh

./start.sh

PHP 命令行

执行定义的命令。

php cli <command> <..attr> <..b>

Docker,docker-compose

包含可配置的 PHP Dockerfile,使用

  • PHP 8.1
    • 带有 FPM 和一些扩展
    • 重新使用 FPM 以获得干净的 CLI 工作图像
  • OPCache
  • PostgreSQL 客户端库(使用 pdo
  • NGINX 基础镜像用于本地路由
  • Dockerfile 中自定义
  • 更“生产就绪”的镜像,预先配置用于在 CI 中构建 in CI,使用 docker-compose--prod.yml

有关 Docker 镜像配置,请参阅 _docker_nginx 中的文件 _docker_nginx

启动 docker-compose.yml 中指定的容器,然后打开: http://localhost:3333

docker-compose up

# open shell in app container
docker-compose exec app sh

# run command in temporary worker container
docker-compose run --rm worker php cli demo

# run extra composer container on windows:
docker run -it --rm -v %cd%:/app composer dumpautoload
# run extra composer container on unix:
docker run -it --rm -v `pwd`:/app composer dumpautoload

# run tests with temporary `app` container:
docker-compose run -T --rm app sh -c "cd /var/www/html && ./vendor/bin/phpunit --testdox tests"

# running tests with a temporary `phpunit` in a prebuild container:
docker run -i --rm bemiteu/satellite-app:master sh -c "cd /var/www && wget -O phpunit https://phar.phpunit.de/phpunit-9.phar && chmod +x phpunit && cd html && /var/www/phpunit --testdox tests"

Web 服务器

在 Web 服务器上,web/index.php 文件作为公开入口点。

Apache:将服务器/vhost 根指向 /web 并使用包含的 .htaccess

NGINX:示例文件在 _nginx

配置

例如,使用 .env 添加配置。

默认配置包括

  • 环境变量 env:是否在生产中或在非生产中
    • 具有值 prod,则在 App 中(而非框架)假定它在生产中
    • 使用 $_ENV['env'] === 'prod' 检查生产状态
    • 针对开发错误页面:添加变量 dev.editor,值为 PrettyPageHandler::EDITOR_*,以将 whoops 的“打开文件”功能与 IDE 链接。
  • /config/config.php - 主要配置文件
    • 配置包含哪些其他配置文件
    • 聚合并缓存配置以用于生产环境
  • /config/dependencies.php - PHP-DI 的定义
  • /config/events.php - 定义应用程序组件流程
  • /config/pipeline.php - 设置 PSR 中间件和管道

PSRs

本应用程序作为微型框架,拥有 PSR 驱动的库、可用的注解和更多内容。

它基于 PSRs 以及实现它们或其他优秀功能的流行、专业包构建。

  • PSR-3 - 日志记录器
  • PSR-4 - 自动加载类,忘记 require_once
  • PSR-1,12 - 代码风格指南
    • 除了括号位置规则:开括号 { 在同一行,而不是下一行
  • PSR-6 - 缓存
  • PSR-7 - HTTP 消息
    • 📦 nyholm\psr7
    • 请求和响应数据定义
    • 进一步用于 PSR-15PSR-17PSR-18
  • PSR-11 - 用于互操作性的容器
    • 📦 php-di/php-di
    • 服务容器,易于使用和模块化
    • 使用 @Annotations@var PHPDoc 和反射支持进行依赖注入
  • PSR-14 - 事件调度器和监听器
    • 📦 orbiter/satellite
    • 作为事物组合的核心
  • PSR-15 - HTTP 处理器
    • 📦 orbiter/satellite-response
    • 使用强大的中间件管道处理路由请求
  • PSR-16 - 简单缓存
  • PSR-17 - HTTP 工厂
    • 📦 nyholm\psr7
    • 请求的上下文信息
    • 用于请求和响应初始化
  • PSR-18 - HTTP 客户端
    • 📦 guzzlehttp/guzzle
    • 向其他 API 发送请求
    • 更多实现

📦 = 包含在 satellite-app 模板中

  • orbiter/satellite Latest Stable Version
    • 实现 PSR-14 事件调度器和监听器
    • 具有执行任何操作的调用器,兼容 PSR-11
    • 基于事件处理器的可选分析
    • 请参阅 包仓库
  • orbiter/satellite-console Latest Stable Version
  • orbiter/satellite-response Latest Stable Version
    • 中间件管道执行
    • 通过 equip/dispatch 实现 PSR-15,符合 PSR-11 规范
    • 通过 nyholm/psr7nyholm/psr7-server 实现 PSR-7,17
    • 使用简单的发射器 narrowspark/http-emitter
    • 查看 包仓库
  • orbiter/satellite-route 最新稳定版本
    • 通过注解进行路由
    • 使用 nikic/fast-route 作为路由器
    • 为PSR中间件使用而制作,但不仅限于此
    • 查看 包仓库
  • orbiter/annotations-util 最新稳定版本
    • 使用 doctrine/annotations 的缓存反射进行注解
    • 获取注解的类、方法和属性
    • 查看 AnnotationsUtil
  • orbiter/satellite-whoops 最新稳定版本
    • Whoops 错误显示用于 CLI 和路由
    • 只有当 $_ENV['env'] 不为 prod 时(在 assemble.php 中可配置)
  • orbiter/satellite-config 最新稳定版本
    • 简单的配置聚合器,带有缓存
    • 查看 包仓库
  • orbiter/satellite-launch 最新稳定版本
    • SatelliteApp 事件数据对象
    • 查看 包仓库
  • orbiter/satellite-system 最新稳定版本
    • 系统设置和核心连接,例如从 $config 到缓存PSR容器
    • 查看 包仓库

大量的API工作是通过PSR-15 HTTP Middleware完成的,更多 优秀中间件

下载构建

没有可下载版本 - 查看 设置 了解如何使用Composer安装。

我们使用Composer作为包管理器,就像在任何现代PHP项目中一样。

请随时提出 培训请求

许可

本项目是免费软件,在 MIT许可证 下分发。

贡献者

通过将您的代码提交到代码仓库,您同意在仓库附带的MIT许可证下发布代码。

Michael Becker 维护