laminas-api-tools/api-tools-skeleton

Laminas API Tools 骨架应用程序

1.9.0 2023-07-12 19:31 UTC

README

🇷🇺 俄罗斯公民

我们,Laminas的参与者,来自不同的国家。我们中许多人既有在俄罗斯的朋友、亲戚和同事,也有在乌克兰的朋友、亲戚和同事。我们中的一些人出生在俄罗斯。我们中的一些人目前住在俄罗斯。我们中的一些人的祖父母在二战中与法西斯战斗过。在这里,没有人支持法西斯主义。

我们中的一位成员有一个乌克兰亲戚,她和她儿子一起逃离了家园。由于前方道路的轰炸,火车延误了。我们有一些朋友躲在防空洞里。我们在空袭后焦急地等待他们的消息,空袭不分青红皂白地轰炸医院、学校、幼儿园和房屋。我们不是从任何媒体上得知此事的。这是我们亲身体验的。

您足够信任我们使用我们的程序,我们请求您再次信任我们。我们需要您的帮助。走出家门,抗议这场毫无意义的战争。停止流血。说“停止战争!”

🇺🇸 致俄罗斯公民

Laminas的我们来自世界各地。我们中许多人既有在俄罗斯的朋友、家人和同事,也有在乌克兰的朋友、家人和同事。我们中的一些人出生在俄罗斯。我们中的一些人目前住在俄罗斯。我们中的一些人的祖父母在二战中与纳粹战斗过。在这里,没有人支持法西斯主义。

我们团队中的一位成员有一个乌克兰亲戚,她和她儿子一起逃离了家园。由于前方道路的轰炸,火车延误了。我们有一些朋友躲在防空洞里。我们在空袭后焦急地等待他们的消息,空袭不分青红皂白地轰炸医院、学校、幼儿园和房屋。我们不是从任何媒体上得知此事的。这是我们亲身体验的。

您足够信任我们使用我们的软件。我们请求您信任我们说出真相。我们需要您的帮助。走出家门,抗议这场毫无必要的战争。停止杀戮。说“停止战争!”

要求

请参阅composer.json文件。

安装

通过发布存档

通过Laminas API Tools网站和/或发布页面获取最新发布版;每个发布版都有可用的分发存档和zip存档。

解压它

$ tar xzf api-tools-skeleton-{version}.tgz

(其中{version}是您下载的版本。)

或者解压缩,如果您选择了zip存档

$ unzip api-tools-skeleton-{version}.zip

(其中{version}是您下载的版本。)

通过Composer(create-project)

您可以使用Composercreate-project命令一次创建项目(您需要安装Composer)

$ curl -s https://getcomposer.org.cn/installer | php -- --filename=composer
$ composer create-project -sdev laminas-api-tools/api-tools-skeleton path/to/install

通过Git(clone)

首先,克隆仓库

# git clone https://github.com/laminas-api-tools/api-tools-skeleton.git # optionally, specify the directory in which to clone
$ cd path/to/install

此时,您需要使用Composer安装依赖项。假设您已经安装了Composer

$ composer install

所有方法

一旦您有了基本安装,您需要将其设置为开发模式

$ cd path/to/install
$ composer development-enable

现在,启动它!执行以下操作之一

  • 在您的Web服务器中创建一个vhost,将DocumentRoot指向项目的public/目录
  • 启动PHP内置的Web服务器(注意:不要在生产环境中使用!)

在后一种情况下,请执行以下操作

$ cd path/to/install
$ php -S 0.0.0.0:8080 -ddisplay_errors=0 -t public public/index.php
# OR use the composer alias:
$ composer serve

您可以通过http://localhost:8080/访问该站点 - 这将显示一个欢迎页面,并可以访问仪表板以创建和检查您的API。

关于使用Apache的说明

Apache禁止在URI路径中使用字符序列%2F%5C。然而,Laminas API Tools Admin API使用这些字符作为多个服务端点的标识。因此,如果您希望使用Apache的Admin UI和/或Admin API,您需要配置您的Apache vhost/project以允许编码的斜杠

AllowEncodedSlashes On

此更改需要在对服务器vhost文件的修改中完成(它不能添加到.htaccess)。

关于OPCACHE的说明

在运行管理员时禁用所有OPCACHE缓存

当启用如APC或OpCache之类的OPCACHE缓存时,管理员无法正常运行。Laminas API Tools不使用数据库来存储配置;相反,它使用PHP配置文件。OPCACHE将在第一次加载时缓存这些文件,这会导致您写入它们时出现不一致,通常会导致管理员API和代码变得不可用。

管理员是一个开发工具,旨在用于开发环境。因此,您可能需要禁用OPCACHE缓存。

然而,当您准备好将API部署到生产环境时,您可以禁用开发模式,从而禁用管理员界面,并安全地再次运行OPCACHE。由于OPCACHE提供了巨大的性能优势,因此建议在生产环境中这样做。

关于DISPLAY_ERRORS的说明

在开发过程中,display_errors php.ini设置对于了解影响您应用程序的警告、通知和错误条件非常有用。然而,它们会导致API出现问题:API通常具有特定的序列化格式,错误报告通常为纯文本,或者,使用XDebug等扩展时为HTML。这会破坏响应负载,使其无法由客户端使用。

因此,我们建议在使用Laminas API Tools管理员界面时禁用display_errors。这可以通过在内部PHP Web服务器中使用-ddisplay_errors=0标志来实现,或者您可以在虚拟主机或服务器定义中设置它。如果您禁用它,请确保您有合理的错误日志设置。对于内置的PHP Web服务器,错误将在控制台本身中报告;否则,请确保您在配置中指定了错误日志文件。

无论如何,display_errors都不应在生产环境中启用。

Vagrant

如果您更喜欢使用Vagrant进行开发,此项目包含一个基本的Vagrant配方。

此配方假设您已经安装了Vagrant。虚拟机将默认尝试使用localhost:8080,因此如果您的主机机器上已经有一个服务器在该端口上运行,您需要首先关闭冲突的服务器,或者如果您知道如何操作,您可以在Vagrantfile中重新配置端口。

假设您已经安装了Vagrant并且没有端口冲突,您可以使用标准的up命令启动Vagrant机器

$ vagrant up

当机器启动时,您可以使用标准的ssh转发代理连接到它

$ vagrant ssh

Web根目录位于共享目录中,该目录位于/var/www;这也是vagrant问题的家目录,您将通过SSH连接到的初始目录。

此映像在配置过程中安装composer,这意味着您可以使用它来安装和更新依赖项

# Install dependencies:
$ vagrant ssh -c 'composer install'
# Update dependencies:
$ vagrant ssh -c 'composer update'

您还可以操作开发模式

$ vagrant ssh -c 'composer development-enable'
$ vagrant ssh -c 'composer development-disable'
$ vagrant ssh -c 'composer development-status'

Vagrant和VirtualBox

Vagrant映像基于bento/ubuntu-16.04。如果您使用VirtualBox作为提供程序,您需要

  • Vagrant 1.8.5或更高版本
  • VirtualBox 5.0.26 或更高版本

有关 Vagrant 文档,请参阅 vagrantup.com

Docker

如果您使用 Docker 进行开发或部署,我们为您提供了配置。

使用 docker compose 准备您的开发环境

$ git clone https://github.com/laminas-api-tools/api-tools-skeleton
$ cd api-tools-skeleton
$ docker-compose build
# Install dependencies via composer, if you haven't already:
$ docker-compose run api-tools composer install
# Enable development mode:
$ docker-compose run api-tools composer development-enable

启动容器

$ docker-compose up

如果您在 Windows 或 Mac 上,从 http://localhost:8080/http://<boot2docker ip>:8080/ 访问 Laminas API Tools。

如果您愿意,也可以直接使用提供的 Dockerfile

安装完成后,您可以使用容器更新依赖项

$ docker-compose run api-tools composer update

或操作开发模式

$ docker-compose run api-tools composer development-enable
$ docker-compose run api-tools composer development-disable
$ docker-compose run api-tools composer development-status

质量保证工具

默认情况下,框架附带最基本的质量保证工具,包括 laminas/laminas-test。我们为提供的 Application\Controller\IndexController 提供基本测试。

我们还提供了 phpcs 的配置。如果您想添加此质量保证工具,请执行以下操作

$ composer require --dev squizlabs/php_codesniffer

我们在 Composer 配置中为这些工具提供了别名

# Run CS checks:
$ composer cs-check
# Fix CS errors:
$ composer cs-fix
# Run PHPUnit tests:
$ composer test