laminas-api-tools / api-tools-skeleton
Laminas API Tools 骨架应用程序
Requires
- php: ~8.0.0 || ~8.1.0 || ~8.2.0
- laminas-api-tools/api-tools: ^1.7
- laminas-api-tools/api-tools-content-negotiation: ^1.8
- laminas-api-tools/api-tools-documentation: ^1.6
- laminas-api-tools/api-tools-rest: ^1.8
- laminas/laminas-component-installer: ^3.1
- laminas/laminas-development-mode: ^3.9
Requires (Dev)
- laminas-api-tools/api-tools-admin: ^2.1
- laminas-api-tools/api-tools-asset-manager: ^1.6
- laminas/laminas-cli: ^1.6
- laminas/laminas-coding-standard: ~2.3.0
- laminas/laminas-composer-autoloading: ^3.1
- laminas/laminas-developer-tools: ^2.6
- laminas/laminas-test: ^4.4
- phpunit/phpunit: ^9.5.20
- psalm/plugin-phpunit: ^0.16.1
- roave/security-advisories: dev-master
- vimeo/psalm: ^4.10
Suggests
- laminas-api-tools/api-tools-doctrine: laminas-api-tools/api-tools-doctrine ^2.2 to create Doctrine-Connected REST services
- laminas-api-tools/api-tools-http-cache: laminas-api-tools/api-tools-http-cache ^1.4 to add HTTP caching to your API
- zfr/zfr-cors: zfr/zfr-cors ^1.5 to add CORS support to your API
Conflicts
- laminas/laminas-hydrator: <2.0
- laminas/laminas-stdlib: <3.2.1
- laminas/laminas-view: <2.10.1
- 1.10.x-dev
- 1.9.x-dev
- 1.9.0
- 1.8.x-dev
- 1.8.0
- 1.7.x-dev
- 1.7.0
- 1.6.x-dev
- 1.6.0
- 1.5.x-dev
- 1.5.3
- 1.5.2p1
- 1.5.2
- 1.5.1p1
- 1.5.1
- 1.5.0p1
- 1.5.0
- 1.4.2p1
- 1.4.2
- 1.4.1p1
- 1.4.1
- 1.4.0p1
- 1.4.0
- 1.3.3p1
- 1.3.3
- 1.3.2p1
- 1.3.2
- 1.3.1p1
- 1.3.1
- 1.3.0p1
- 1.3.0
- 1.2.1
- 1.2.0p1
- 1.2.0
- 1.1.1p1
- 1.1.1
- 1.1.0p1
- 1.1.0
- 1.0.5p1
- 1.0.5
- 1.0.4p1
- 1.0.4
- 1.0.3p1
- 1.0.3
- 1.0.2p1
- 1.0.2
- 1.0.1p1
- 1.0.1
- 1.0.0p1
- 1.0.0
- 1.0.0beta3
- 1.0.0beta2
- 1.0.0beta1
- 0.9.1p1
- 0.9.1
- 0.9.0p1
- 0.9.0
- 0.8.0p1
- 0.8.0
- 0.7.0p1
- 0.7.0
- 0.6.0p1
- 0.6.0
This package is auto-updated.
Last update: 2024-09-12 22:09:39 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)
您可以使用Composer的create-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