afinogen/laminas-mvc-starter-kit

Laminas MVC Starter kit

1.0.0 2020-07-22 12:43 UTC

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