afinogen / laminas-mvc-starter-kit
Laminas MVC Starter kit
Requires
- php: ^7.3
- ext-intl: *
- ext-json: *
- ext-mbstring: *
- ext-pdo: *
- laminas/laminas-authentication: ^2.7
- laminas/laminas-cache: ^2.9.0
- laminas/laminas-component-installer: ^1.0 || ^2.1
- laminas/laminas-db: ^2.10.0
- laminas/laminas-development-mode: ^3.2
- laminas/laminas-json: ^3.1.2
- laminas/laminas-log: ^2.11
- laminas/laminas-mvc: ^3.1.1
- laminas/laminas-mvc-form: ^1.0
- laminas/laminas-mvc-plugins: ^1.0.1
- laminas/laminas-permissions-acl: ^2.7
- laminas/laminas-session: ^2.9.1
- robmorgan/phinx: ^0.12.3
- symfony/console: ^5.1
- symfony/yaml: ^5.1
- tekill/env-diff: dev-add-new-version-symfony-console
- vlucas/phpdotenv: ^5.1
Requires (Dev)
- laminas/laminas-developer-tools: ^2.0.1
- laminas/laminas-test: ^3.4
- phpunit/phpunit: ^9.2
- squizlabs/php_codesniffer: ^3.5
This package is not auto-updated.
Last update: 2024-09-28 20:14:50 UTC
README
简介
这是一个使用 Laminas MVC 层和模块系统的应用程序骨架。此应用程序旨在作为那些想要开始尝试 Laminas MVC 的人的起点。
这是我对于应用程序骨架的设想。可以直接使用
使用 Composer 安装
创建新的 Laminas MVC 项目的最简单方法是使用 Composer。如果您还没有安装,请按照文档进行安装。
创建您的新的 Laminas MVC 项目
$ composer create-project -sdev afinogen/laminas-mvc-starter-kit path/to/install
安装完成后,您可以使用 PHP 内置的 Web 服务器立即对其进行测试
$ cd path/to/install $ php -S 0.0.0.0:8080 -t public # OR use the composer alias: $ composer run --timeout 0 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
的副本进行匹配更新。
使用的模块
laminas/laminas-db - 连接到数据库
laminas/laminas-mvc-form - 使用表单
laminas/laminas-session - 使用会话保存认证用户
symfony/console - 运行控制台命令
robmorgan/phinx - 数据库迁移
vlucas/phpdotenv - 使用 .env 文件
tekill/env-diff - 比较laminas/laminas-authentication - 认证用户
laminas/laminas-permissions-acl - 用户角色
运行单元测试
要运行提供的骨架单元测试,您需要进行以下操作之一
-
在创建项目初始时,选择安装 MVC 测试支持。
-
在创建项目初始后,安装 laminas-test
$ composer require --dev laminas/laminas-test
一旦测试支持存在,您可以使用以下方式运行测试
$ ./vendor/bin/phpunit
如果您需要为 PHPUnit 测试设置进行本地修改,请将 phpunit.xml.dist
复制到 phpunit.xml
并编辑新文件;后者在运行测试时具有优先级,并且被版本控制忽略。(如果您想使修改永久,请编辑 phpunit.xml.dist
文件。)
使用 docker-compose
此骨架提供了一个用于与 docker-compose 一起使用的 docker-compose.yml
。
docker-compose.yml 包含的服务
- nginx - 是一个 HTTP 和反向代理服务器
- laminas - 应用程序骨架
- mysql - 数据库
- phpmyadmin - 管理MySQL数据库
- mailhog - 邮件捕捉器
配置位于文件夹docker/。
使用以下命令构建并启动镜像和容器:
$ docker-compose up -d --build
在此阶段,您可以通过https://访问网站以查看其运行情况。
您还可以在容器中运行如composer
之类的命令。容器环境名为"laminas",因此您需要将此值传递给docker-compose run
。
$ docker-compose run laminas composer install
某些composer包可能需要额外的PHP扩展。Dockerfile包含一些被注释掉的命令示例,用于添加一些更流行的php扩展。例如,要安装intl
支持,取消注释以下行
# RUN apt-get install --yes libicu-dev # RUN docker-php-ext-configure intl # RUN docker-php-ext-install intl
然后重新运行上述docker-compose up -d --build
行。
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工具,但为每个以下工具提供了配置:
此外,它还包含了对 shipped Application\Controller\IndexController
的一些基本测试。
如果您想添加这些QA工具,请执行以下操作
$ composer require --dev phpunit/phpunit squizlabs/php_codesniffer laminas/laminas-test
我们在Composer配置中为这些工具提供了别名
# Run CS checks: $ composer cs-check # Fix CS errors: $ composer cs-fix # Run PHPUnit tests: $ composer test