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状态代码)。