轨道器 / 卫星应用程序
易于使用的 Event & Middleware 微型框架,由流行的项目和 PSR 支持
Requires
- php: >=8.1
- ext-json: *
- cache/filesystem-adapter: ^1.2
- guzzlehttp/guzzle: ^7.5.0
- middlewares/payload: ^3.0.0
- middlewares/request-handler: ^2.0.0
- monolog/monolog: ^3.2.0
- orbiter/annotations-util: ~0.6.2
- orbiter/satellite: ~0.4.0
- orbiter/satellite-config: ~0.2.1
- orbiter/satellite-console: ~0.5.0
- orbiter/satellite-launch: ~0.1.1
- orbiter/satellite-response: ~0.1.3
- orbiter/satellite-route: ~0.3.0
- orbiter/satellite-system: ~0.0.1
- php-di/php-di: ^6.4.0
- psr/cache: ^1.0|^2.0
- psr/container: ^1.0|^2.0
- psr/event-dispatcher: ^1.0
- psr/http-message: ^1.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- vlucas/phpdotenv: ^5.5.0
Requires (Dev)
- orbiter/satellite-whoops: ~0.1.2
- phpunit/phpunit: ^9.5
- roave/security-advisories: dev-master
This package is auto-updated.
Last update: 2024-09-21 23:46:24 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
查看文件
config
文件夹,包含 应用配置和连接assemble.php
composer 自动加载,收集配置并从该配置创建系统模块launch.php
运行assemble()
并分发SatelliteApp
事件app
文件夹,包含基本的命令和路由处理器结构
设置
在文件夹 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 - 日志记录器
- 📦
monolog/monolog
- 更多实现
- 📦
- PSR-4 - 自动加载类,忘记
require_once
- 由 composer 处理,更多内容请参阅 composer 文档。
- PSR-1,12 - 代码风格指南
- 除了括号位置规则:开括号
{
在同一行,而不是下一行
- 除了括号位置规则:开括号
- PSR-6 - 缓存
- 📦
cache/filesystem-adapter
- 包括
FilesystemCachePoolNormalized
以兼容Doctrine\Common\Annotations\PsrCachedReader
- 更多实现
- 📦
- PSR-7 - HTTP 消息
- 📦
nyholm\psr7
- 请求和响应数据定义
- 进一步用于
PSR-15
、PSR-17
和PSR-18
- 📦
- PSR-11 - 用于互操作性的容器
- 📦
php-di/php-di
- 服务容器,易于使用和模块化
- 使用
@Annotations
、@var
PHPDoc 和反射支持进行依赖注入
- 📦
- PSR-14 - 事件调度器和监听器
- 📦
orbiter/satellite
- 作为事物组合的核心
- 📦
- PSR-15 - HTTP 处理器
- 📦
orbiter/satellite-response
- 使用强大的中间件管道处理路由请求
- 📦
- PSR-16 - 简单缓存
- 📦
cache/filesystem-adapter
- 更多实现
- 📦
- PSR-17 - HTTP 工厂
- 📦
nyholm\psr7
- 请求的上下文信息
- 用于请求和响应初始化
- 📦
- PSR-18 - HTTP 客户端
- 📦
guzzlehttp/guzzle
- 向其他 API 发送请求
- 更多实现
- 📦
📦 = 包含在
satellite-app
模板中
包
orbiter/satellite
- 实现 PSR-14 事件调度器和监听器
- 具有执行任何操作的调用器,兼容 PSR-11
- 基于事件处理器的可选分析
- 请参阅 包仓库
orbiter/satellite-console
- 控制台执行
- 控制台命令注解
- 使用 getopt-php
- 请参阅 包仓库
orbiter/satellite-response
- 中间件管道执行
- 通过
equip/dispatch
实现 PSR-15,符合 PSR-11 规范 - 通过
nyholm/psr7
和nyholm/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 维护