dotkernel/admin

Dotkernel 管理应用

安装: 118

依赖: 0

建议者: 0

安全: 0

星级: 26

关注者: 8

分支: 5

开放问题: 8

语言:CSS

类型:项目


README

DotKernel 适用于管理应用的 Web 开发包。

OSS Lifecycle PHP from Packagist (specify version)

GitHub issues GitHub forks GitHub stars GitHub license

Build Static codecov Qodana

SymfonyInsight

安装 DotKernel admin

工具

可以通过单个命令安装 DotKernel,该命令利用了 Composer。因此,需要安装 Composer 以安装 DotKernel admin

Composer

安装说明

如果您之前从未使用过 Composer,请确保您已经阅读了 Composer 文档中的 Composer 基本用法 部分

选择 DotKernel admin 的安装路径

示例

  • 绝对路径 /var/www/dk-admin
  • 或相对路径 dk-admin(等价于 ./dk-admin

安装 DotKernel admin

选择 DotKernel 的路径(本例中为 dk-admin)后,必须进行安装。有两种安装方法。

I. 使用 composer 安装 DotKernel admin

请在终端中使用以下 CLI 命令,不要使用 PhpStorm 按钮

使用此命令的优点是它将运行整个安装过程。运行以下命令

composer create-project dotkernel/admin -s dev dk

上述命令会下载 admin 包,然后下载并安装 依赖项

设置脚本会提示一些配置设置,例如以下几行

Please select which config file you wish to inject 'Laminas\Diactoros\ConfigProvider' into:
  [0] Do not inject
  [1] config/config.php
  Make your selection (default is 1):

只需选择 [0] 不注入,因为 DotKernel 已经包含了包含所需配置的自定义配置提供者。

如果您选择 [1] config/config.php,则 Laminas 的 ConfigProvider 中的 session 将被注入。

下一个问题是

记住此选项以用于其他相同类型的包?(y/N)

在这里输入 y 并按 enter

II. 使用 git clone 安装 DotKernel admin

此方法需要更多手动输入,但确保安装了默认分支,即使它尚未发布。运行以下命令

git clone https://github.com/dotkernel/admin.git .

必须单独安装依赖项,通过运行以下命令

composer install

就像在 II 使用 git clone 安装 DotKernel admin 中一样(见上面),设置会询问有关注入的配置设置(输入 0 并按 enter)以及确认是否使用此设置用于其他包(输入 y 并按 enter

配置 - 首次运行

  • 从文件 config/autoload/local.php.dist 中移除 .dist 扩展名
  • 根据您的开发机器编辑 config/autoload/local.php 并填写 database 配置

使用以下命令运行迁移和种子

php bin/doctrine-migrations migrate

php bin/doctrine fixtures:execute
  • 如果您使用 composer create-project,则项目将在安装后自动进入开发模式。可以使用以下 composer 命令检查和切换开发模式状态

    composer development-status
    
    composer development-enable
    
    composer development-disable
    
  • 如果尚未在安装过程中完成,请从 config/autoload/development.global.php.dist 中移除 .dist 扩展名。这将通过将调试标志设置为 true 并将配置缓存设置为 off 来启用开发模式。它还将确保清除任何现有的配置缓存。

字符集推荐:utf8mb4_general_ci

管理 GeoLite2 数据库

您可以通过运行以下命令下载/更新特定的 GeoLite2 数据库

php bin/cli.php geoip:synchronize -d {DATABASE}

其中 {DATABASE} 可以取以下值之一:asncitycountry

您可以通过运行以下命令一次性下载/更新所有 GeoLite2 数据库

php bin/cli.php geoip:synchronize

输出应类似于以下示例,按行显示:数据库标识上次构建日期时间 -> 当前构建日期时间

asn: n/a -> 2021-07-01 02:09:34

城市:n/a -> 2021-07-01 02:09:20

国家:n/a -> 2021-07-01 02:05:12

通过运行以下命令获取此命令的帮助:

php bin/cli.php help geoip:synchronize

提示:如果您将同步器命令设置为cronjob,可以添加-q|--quiet选项,并且只有在发生错误时才会输出数据。

NPM命令

要安装到node_modules目录中的依赖项,请运行此命令。

npm install

如果npm install失败,这可能是由于npm的用户权限引起的。建议通过Node版本管理器安装npm。

watch命令编译组件,然后监视文件,并在其中一个文件更改时重新编译。

npm run watch

所有更新完成后,此命令将在本地编译资源,对其进行压缩,使其准备就绪以进行生产。

npm run prod

授权守卫

负责限制对应用程序某些部分访问的包是dot-rbac-guarddot-rbac。这些包协同工作,创建一个可自定义和多样化的基础设施,通过指定用户拥有的角色类型来管理用户对平台的访问。

authorization.global.php文件提供了多个配置,指定了多个角色以及这些角色可以访问的权限类型。

'roles' => [
    'superuser' => [
        'permissions' => [
            'authenticated',
            'edit',
            'delete',
            //etc..
        ]
    ],
    'admin' => [
        'permissions' => [
            'authenticated',
            //etc..
        ]
    ]
]

authorization-guards.global.php文件提供了配置,根据在authorization.global.php中定义的权限来限制对某些操作的访问,因此我们首先必须在dot-rbac配置文件中添加权限,以指定操作限制权限。

'rules' => [
  [
      'route' => 'account',
      'actions' => [//list of actions to apply , or empty array for all actions
          'unregister',
          'avatar',
          'details',
          'changePassword'
      ],
      'permissions' => ['authenticated']
  ],
  [
      'route' => 'admin',
      'actions' => [
          'deleteAccount'
      ],
       'permissions' => [
          'delete'
          //list of roles to allow
      ]
  ]
]

测试(运行)

注意:不要在生产环境中启用开发模式

  • 在项目的目录中运行以下命令以启动PHP的内置服务器:

    php -S 0.0.0.0:8080 -t public
    

运行命令composer serve将执行完全相同的事情,但上面的方法更快。

0.0.0.0表示服务器对所有传入连接开放,127.0.0.1表示服务器只能本地访问(仅限localhost),8080是服务器启动的端口(服务器监听端口)

注意:如果您仍然收到有关某些缺少服务的异常或错误,请尝试运行以下命令:

php bin/clear-config-cache.php

如果存在config-cache.php,则无论在config/autoload/mezzio.global.php中的ConfigAggregator::ENABLE_CACHE如何,都会加载该配置。

  • 打开网络浏览器,访问https://:8080/

您应该看到DotKernel管理员登录页面。

如果您运行了迁移,则数据库中将有以下凭证的管理员用户:

  • 用户admin
  • 密码dotadmin

注意

  • 仅限生产:请确保您已修改默认管理员凭证。

  • 仅限开发:由于session.cookie_secure在本地不起作用,请确保您已修改local.php,如下所示

    return [
      'session_config' => [
          'cookie_secure' => false,
      ]
    ];
    

请勿在local.php.dist中更改此设置,因为此值在生产环境中应保持为true