rrpadilla / slim3-api-skeleton
此包已被废弃,不再维护。未建议替代包。
考虑内容协商和性能的 Slim 3 API 框架。
dev-master
2018-03-21 06:18 UTC
Requires
- hassankhan/config: ^0.10.0
- monolog/monolog: ^1.21
- slim/http-cache: ^0.3.0
- slim/slim: ^3.5
Requires (Dev)
- phpunit/phpunit: >=5.5 < 6.0
This package is not auto-updated.
Last update: 2022-02-19 05:59:57 UTC
README
这是一个使用 Slim 3(内容协商、认证、错误处理、缓存和性能)的 API 框架。错误和异常处理已为您配置。请检查 config/dependencies.php
文件。
内容协商
内容协商通过查询参数和 HTTP 标头 "Accept" 处理。
- 默认查询参数为
"output"
,可能的值为("json" 或 "xml"
)。 - 如果没有提供
"output"
参数,则使用 HTTP 标头"Accept"
来确定哪个"Content type"
。如果不包含"application/json"
或"application/xml"
,则默认输出为"json"
。
此项目使用以下包/组件
- Monolog 用于日志记录。
- Slim-HttpCache。 更多信息
- Noodlehaus's Config 加载
env.php
文件。 - PHPUnit 用于测试。
您可以将在 Packagist 上找到的任何第三方组件集成到项目中。
运行
$ cd my-app
$ php -S 0.0.0.0:8888 -t public public/index.php
- 访问 https://:8888
关键目录
app/
:目录包含您的应用程序的核心代码。所有位于App
命名空间内的类文件。app/Controllers/
:目录包含控制器和动作类。app/Handlers/
:目录包含处理程序类(错误、PhpError、NotFound、NotAllowed)。app/Helpers/
:目录包含助手类。app/Middleware/
:目录包含中间件类。app/Renders/
:目录包含特定响应的渲染类(json 和 xml)。bootstrap/
:目录包含引导框架和配置自动加载的文件。cache/
:目录包含框架生成的用于性能优化的文件,例如路由文件。应由您的 Web 服务器写入。cache/routes/
:目录用于存储生成的路由文件。在生产环境中具有更好的性能。应由您的 Web 服务器写入。config/
:目录包含您应用程序的所有配置文件(设置、依赖项、中间件)。logs/
:目录包含您应用程序的日志文件。应由您的 Web 服务器写入。public/
:目录包含index.php文件,它是所有进入您应用程序请求的入口点。routes/
:目录包含您应用程序的所有路由定义。默认情况下,包含1个路由文件:routes.php
。tests/
:目录包含您的自动化测试。提供了一个示例PHPUnit。要运行测试:phpunit -- verbose tests/DefaultRoutesTest.php
。vendor/
:目录包含您的Composer依赖。
关键文件
public/index.php
:应用程序的入口点。bootstrap/app.php
:引导框架,配置自动加载、依赖项、路由等。env.php.dist
:环境设置。必须将其复制到env.php并修改该文件。config/dependencies.php
:Pimple的服务。包括(数据库、异常/错误处理程序、日志记录器等)。config/middleware.php
:应用程序中间件。config/settings.php
:slim和其他配置。重写Slim默认设置(displayErrorDetails, routerCacheFile)。routes/routes.php
:所有应用程序路由都在这里。app/Controllers/ExampleAction.php
:示例动作类。app/Helpers/ArrayToXml.php
:辅助类,用于将数组转换为XML。由XmlApiView类使用。app/Renders/ApiView.php
:基于PSR-7请求的Accept头的输出渲染。app/Renders/JsonApiView.php
:json响应的视图包装器(带有错误代码)。返回“meta”和“data”。“meta”包含“error”(true/false)和“status”(HTTP状态代码)。app/Renders/XmlApiView.php
:xml响应的视图包装器(带有错误代码)。返回“meta”和“data”。“meta”包含“error”(true/false)和“status”(HTTP状态代码)。