elanm / laminas-mvc-skeleton
Laminas MVC 骨架应用程序
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- laminas/laminas-component-installer: ^3.4.0
- laminas/laminas-development-mode: ^3.12.0
- laminas/laminas-mvc: ^3.7.0
- laminas/laminas-skeleton-installer: ^1.3.0
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^1.0
- laminas/laminas-test: ^4.9
- phpunit/phpunit: ^10.4
- psalm/plugin-phpunit: ^0.18.4
- squizlabs/php_codesniffer: ^3.7
- vimeo/psalm: ^5.13
This package is auto-updated.
Last update: 2024-09-28 02:22:47 UTC
README
🇷🇺 俄罗斯公民
我们,Laminas 的参与者,来自不同的国家。我们中许多人都有在俄罗斯和乌克兰的朋友、亲戚和同事。我们中的一些人在俄罗斯出生。我们中的一些人目前住在俄罗斯。我们中的一些人的祖父母在第二次世界大战中与法西斯作战。这里没有人支持法西斯主义。
我们中有一名成员有一位乌克兰亲戚,她和儿子一起逃离了家园。由于前方道路上的轰炸,火车延误了。我们有朋友躲在防空洞里。我们在空袭后焦急地等待他们的消息,空袭无差别地打击医院、学校、幼儿园和住宅。我们不是从任何媒体上得知这些情况。这是我们亲身体验到的。
您足够信任我们,使用我们的程序,我们请求您再次信任我们。我们需要帮助。走出家门,抗议这场毫无意义的战争。停止流血。说“停止战争!”
🇺🇸 致俄罗斯公民
Laminas 的我们来自世界各地。我们中许多人都在俄罗斯和乌克兰有朋友、家人和同事。我们中的一些人在俄罗斯出生。我们中的一些人目前住在俄罗斯。我们中的一些人的祖父母在第二次世界大战中与纳粹作战。这里没有人支持法西斯主义。
我们团队中有一名成员有一位乌克兰亲戚,她和儿子一起逃离了家园。由于前方道路上的轰炸,火车延误了。我们有朋友躲在防空洞里。我们在空袭后焦急地等待他们的消息,空袭无差别地打击医院、学校、幼儿园和住宅。我们不是从任何媒体上得知这些情况。这是我们亲身体验到的。
您足够信任我们,使用我们的软件。我们请求您信任我们,说出真相。我们需要您的帮助。走出家门,抗议这场无意义的战争。停止杀戮。说“停止战争!”
简介
这是一个使用 Laminas MVC 层和模块系统的骨架应用程序。此应用程序旨在作为那些想要尝试 Laminas MVC 的入门点。
使用 Composer 安装
创建新的 Laminas MVC 项目最简单的方法是使用 Composer。如果您还没有安装,请按照文档进行安装。
创建新的 Laminas MVC 项目
$ composer create-project -sdev laminas/laminas-mvc-skeleton path/to/install
安装完成后,您可以使用 PHP 内置的 Web 服务器立即测试它
$ cd path/to/install $ php -S 0.0.0.0:8080 -t public # OR use the composer alias: $ composer serve
这将在 8080 端口启动 cli-server,并将其绑定到所有网络接口。然后您可以访问https://:8080/
- 这将显示 Laminas MVC 骨架欢迎页面。
注意:内置的 CLI 服务器仅用于开发。
开发模式
骨架默认包含 laminas-development-mode,并提供三个别名以使用它所提供的脚本
$ composer development-enable # enable development mode $ composer development-disable # disable development mode $ composer development-status # whether or not development mode is enabled
您可以在 config/development.config.php.dist
中提供仅用于开发的模块和引导级别的配置,以及仅用于开发的配置在 config/autoload/development.local.php.dist
中。启用开发模式将复制这些文件到不带 .dist
后缀的版本,而禁用开发模式将删除这些副本。
开发模式作为骨架安装过程的一部分自动启用。在修改上述提到的任一.dist
配置文件后,您需要禁用并重新启用开发模式以使更改生效,或者手动对那些不带.dist
的文件副本进行匹配更新。
运行单元测试
要运行提供的骨架单元测试,您需要执行以下操作之一:
-
在初始项目创建期间,选择安装MVC测试支持。
-
在初始项目创建后,安装laminas-test
$ composer require --dev laminas/laminas-test
一旦有了测试支持,您可以使用以下方式运行测试:
$ ./vendor/bin/phpunit
如果您需要为PHPUnit测试设置进行本地修改,将phpunit.xml.dist
复制到phpunit.xml
并编辑新文件;在运行测试时,后者优先于前者,并且由版本控制忽略。(如果您想使修改永久生效,请编辑phpunit.xml.dist
文件。)
运行Psalm静态分析
要运行提供的骨架静态分析,您需要执行以下操作之一:建议安装来自laminas的测试组件(laminas/laminas-test),因为这是在提供的测试中使用的。
$ composer require --dev vimeo/psalm psalm/plugin-phpunit laminas/laminas-test
一旦有了psalm支持,您可以使用以下方式运行静态分析:
$ composer static-analysis
使用docker-compose
此骨架提供了一个用于docker-compose的docker-compose.yml
文件;它使用提供的Dockerfile
构建一个用于laminas
容器的docker镜像。
使用以下方式构建并启动镜像和容器:
$ docker-compose up -d --build
此时,您可以通过访问https://:8080来查看正在运行的网站。
您还可以在容器中运行如composer
之类的命令。容器环境名称为"laminas",因此您需要将此值传递给docker-compose run
$ docker-compose run laminas composer install
一些Composer包可选地使用额外的PHP扩展。Dockerfile
中包含几个注释掉的命令,这些命令启用了某些更受欢迎的php扩展。例如,为了安装对laminas/laminas-db
的pdo-pgsql
支持,取消注释以下行:
# RUN apt-get install --yes libpq-dev \ # && docker-php-ext-install pdo_pgsql
然后重新运行上述的docker-compose up -d --build
行。
您可能还希望稍后组合各种
apt-get
和docker-php-ext-*
语句,以减少您镜像创建的层数。
Web服务器设置
Apache设置
要设置Apache,创建一个虚拟主机指向项目的public/目录,您应该就可以开始了!它看起来可能如下所示
<VirtualHost *:80> ServerName laminasapp.localhost DocumentRoot /path/to/laminasapp/public <Directory /path/to/laminasapp/public> DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all <IfModule mod_authz_core.c> Require all granted </IfModule> </Directory> </VirtualHost>
Nginx设置
要设置Nginx,打开您的/path/to/nginx/nginx.conf
,并在如果不存在的情况下,在http
块下方添加以下include指令
http { # ... include sites-enabled/*.conf; }
在/path/to/nginx/sites-enabled/laminasapp.localhost.conf
下为您项目创建一个虚拟主机配置文件,它可能看起来如下所示
server { listen 80; server_name laminasapp.localhost; root /path/to/laminasapp/public; location / { index index.php; try_files $uri $uri/ @php; } location @php { # Pass the PHP requests to FastCGI server (php-fpm) on 127.0.0.1:9000 fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /path/to/laminasapp/public/index.php; include fastcgi_params; } }
重新启动nginx,现在您应该可以开始了!
QA工具
骨架默认不包含任何QA工具,但为每个都提供了配置
此外,它还包含对Application\Controller\IndexController
提供的某些基本测试。
如果您想添加这些QA工具,执行以下操作
$ composer require --dev squizlabs/php_codesniffer laminas/laminas-test
我们在Composer配置中为这些工具提供了别名
# Run CS checks: $ composer cs-check # Fix CS errors: $ composer cs-fix # Run PHPUnit tests: $ composer test