jeyson / mezzio-skeleton
Laminas mezzio 骨架。几秒钟内开始开发 PSR-15 中间件应用!
Requires
- php: ^7.4 || ~8.0.0 || ~8.1.0
- ext-json: *
- composer/package-versions-deprecated: ^1.10.99
- laminas/laminas-component-installer: ^2.6
- laminas/laminas-config-aggregator: ^1.6
- laminas/laminas-db: ^2.13
- laminas/laminas-diactoros: ^2.7
- laminas/laminas-servicemanager: ^3.4
- laminas/laminas-stdlib: ^3.6
- mezzio/mezzio: ^3.7
- mezzio/mezzio-helpers: ^5.7
- mezzio/mezzio-laminasrouter: ^3.0.1
Requires (Dev)
- filp/whoops: ^2.7.1
- laminas/laminas-development-mode: ^3.3.0
- mezzio/mezzio-tooling: ^2.1
- phpunit/phpunit: ^9.5.11
- roave/security-advisories: dev-master
README
使用 Docker 执行
$ docker-compose up -d --build
# access container
$ docker exec -it skeleton bash
# install dependencies
$ composer install or compose install --ignore-platform-reqs
# enable development-mode
$ composer-development-enable
点击此处访问应用程序
$ https://:8094 or https://:8094/api/ping
Mezzio 骨架和安装程序
几秒钟内开始开发 PSR-15 中间件应用!
mezzio 基于 laminas-stratigility,提供了一个用于 PHP 的最小化 PSR-15 中间件框架,具有路由、DI 容器、可选模板和可选错误处理功能。
此安装程序将根据用户输入选择可选包,并基于 mezzio 设置骨架应用程序,如下所示截图演示。
用户选择的包将保存到 composer.json
中,以确保所有其他参与项目的人都有相同的包安装。已准备好配置文件和模板以供首次使用。设置成功后,将从 composer.json
中删除安装程序命令,并删除所有与安装程序相关的文件。
入门
使用 composer 开始您的 Mezzio 项目
$ composer create-project mezzio/mezzio-skeleton <project-path>
选择并安装您想要的包后,转到 <项目路径>
并启动 PHP 的内置 Web 服务器以验证安装
$ composer run --timeout=0 serve
然后您可以通过 https://:8080 浏览。
Linux 用户
在 7.1.14 和 7.2.2 之前的 PHP 版本中,此命令可能不会按预期工作,因为 PHP 中存在一个仅影响 Linux 环境的错误。在这种情况下,您需要自己启动 内置 Web 服务器,使用以下命令:
$ php -S 0.0.0.0:8080 -t public/ public/index.php
设置超时
Composer 命令在 300 秒(5 分钟)后超时。在基于 Linux 的系统上,由
composer serve
启动的php -S
命令作为后台进程继续运行,但在其他系统上在超时时停止。因此,我们建议使用超时运行
serve
脚本。这可以通过使用composer run
执行serve
脚本来完成,并带有--timeout
选项。当设置为0
时,如前例所示,则不会使用超时,并且它将一直运行,直到您取消该进程(通常通过Ctrl-C
)。或者,您可以指定一个有限的超时;例如,以下将超时延长到整整一天:$ composer run --timeout=86400 serve
安装替代包
有一个安装替代包的功能:您实际上可以输入包名称和版本,而不是输入选择中的一个。
Which template engine do you want to use? [1] Plates [2] Twig [3] zend-view installs zend-servicemanager [n] None of the above Make your selection or type a composer package name and version (n): infw/pug:0.1 - Searching for infw/pug:0.1 - Adding package infw/pug (0.1)
该功能允许您安装任何想要的替代包。尽管如此,它也有其局限性。
- 替代包必须遵循此格式
namespace/package:1.0
。它需要正确的版本。 - 模板不会复制,但 ConfigProvider 可以配置为使用包本身的默认模板。
- 对于容器来说,这不起作用,因为需要复制 container.php 文件。
故障排除
如果在 composer create-project
阶段安装器失败,请在提交新问题之前,查看以下列表。我们迄今为止看到的多数问题都可以通过 self-update
和 clear-cache
解决。
- 请确保使用最新版本的 composer,通过运行
composer self-update
。 - 尝试通过运行
composer clear-cache
清除 Composer 的缓存。
如果上述方法均无效,您可能面临更严重的问题。
- 有关 zlib_decode 错误 的信息。
- 有关 composer 降级模式 的信息和解决方案。
应用程序开发模式工具
此框架自带 laminas-development-mode。它提供了一个 composer 脚本,允许您启用和禁用开发模式。
要启用开发模式
注意:不要在生产服务器上运行开发模式!
$ composer development-enable
注意:启用开发模式还将清除您的配置缓存,以便安全地更新依赖项,并确保应用程序能够拾取任何新的配置。
要禁用开发模式
$ composer development-disable
开发模式状态
$ composer development-status
配置缓存
默认情况下,框架将在 data/config-cache.php
创建配置缓存。在开发模式下,配置缓存将禁用,并且在进入和退出开发模式时将删除配置缓存。
在部署到相同目录时,您可能需要在生产环境中清除配置缓存。您可以使用以下命令执行此操作
$ composer clear-config-cache
您还可以通过编辑 config/config.php
文件并更改本地 $cacheConfig
变量的 config_cache_path
条目来更改配置缓存的位置。
框架开发
本节仅适用于您使用 git clone
克隆此仓库,而不是使用 composer create-project ...
安装 mezzio 的情况。
如果您想对安装器进行测试,则需要克隆此仓库并使用 composer 设置所有依赖项。请确保使用 --no-scripts
阻止 composer 运行脚本,否则它将删除安装器和所有测试。
$ composer update --no-scripts
$ composer test
请注意,安装器测试在运行测试前后会删除已安装的配置文件和模板。
在贡献之前,请阅读 贡献指南。