jschreuder/ middle-skeleton
为新项目设置的中层框架。
dev-master
2023-02-05 21:38 UTC
Requires
- php: >=8.1
- ext-pdo: *
- jschreuder/middle: ^2.0
- jschreuder/middle-di: dev-master
- laminas/laminas-diactoros: ^2.9
- laminas/laminas-httphandlerrunner: ^2.1
- monolog/monolog: ^2.3
- robmorgan/phinx: ^0.13
- symfony/console: ^6.0
- symfony/routing: ^6.0
Requires (Dev)
- phpspec/phpspec: ^7.2
This package is auto-updated.
Last update: 2024-09-06 01:09:56 UTC
README
为 Middle 框架 提供的基本(虽然具有意见)设置。它配置了以下内容
- Laminas Diactoros 作为 HTTP 消息实现,以及 Laminas HTTP handlerrunner 用于发出响应
- Monolog 用于日志记录
- Symfony 路由器
- phpspec 用于 BDD 风格测试
- Phinx 用于数据库迁移
- Symfony 控制台 用于命令行命令
- JSON 中间件以支持具有 JSON 内容类型主体的请求
安装
在命令行中使用 composer
$ composer create-project jschreuder/middle-skeleton myapp dev-master
之后,您需要使日志目录可写
$ chmod 0755 var/logs
接下来,您将设置配置文件。将 dev.php
中的数据库凭据修改为您所需的内容。您可以通过重命名 dev.php
文件并编辑 env.php
的返回值以返回该名称来更改环境。
$ mv etc/dev.php.dist etc/dev.php $ mv etc/env.php.dist etc/env.php
之后,如果您打算使用数据库,还应在环境配置文件中设置正确的凭据。
最后:您可能想将一切放在不同的命名空间下 ;-)
测试是否正常工作
转到命令行并输入 ./console middle:example MyName
以显示欢迎信息。该命令位于 src/Command/ExampleCommand.php
。
转到命令行并进入 web
目录,输入 php -S localhost:8080
并在浏览器中访问 https://:8080
。它应该显示一个 JSON 编码的 你好,世界 消息。该控制器的位置在 src/Controller/ExampleController.php
,路由设置在 src/GeneralRoutingProvider.php
。
运行 bin/phpspec run
以使 phpspec 在示例类上运行规格。
连接
有几个文件将应用程序连接在一起
etc/app_init.php
,它加载自动加载器,设置一些合理的环境设置,设置 Monolog,并使用GeneralServiceProvider
初始化 DiC;web/index.php
,它是 Web 应用程序的入口点,将加载路由并将请求通过应用程序运行;console
,它注册命令;- DiC 在
ServiceContainer
类中配置; - 路由在
GeneralRoutingProvider
类中配置; - 控制台命令在
ConsoleCommandsProvider
类中配置。
包含在中层框架中
在中层框架中包含了一些您可能想要考虑但尚未设置的事情
- 会话:您可以使用
SessionMiddleware
以及 Laminas 实现为应用程序添加会话支持。注意,您还需要安装 Laminas Session 包。 - 视图/模板:您可以使用
View
和Renderer
类与 Twig 一起生成来自强大模板的输出。或者根据提供的接口实现您自己的视图层。 - 使用请求验证器和请求过滤器在请求到达控制器之前检查 HTTP 请求。