wegar/basic

Webman plugin wegar/basic

v1.0.33 2025-04-21 14:20 UTC

README

初始化任务自动加载

app/init文件夹下以类名.php形式创建初始化任务类,并实现run()方法,该方法会在系统启动时自动执行。

Init示例
<?php

# app/init/Foo.php

namespace app\init;

use Wegar\Basic\Abstract\InitAbstract;

class Foo extends InitAbstract {

    public int $weight = 10; // 默认为10,越小越先执行

    function run(){
        // do something
    }
}

数据库迁移自动加载

在项目根目录创建phinx.php文件,使用命令 phinx create 或者 webman phinx create 创建迁移文件。当启动时,会自动执行迁移文件。

如果使用 bin 或者 phar 打包时需要设置自动释放配置。

phinx.php文件内容
<?php

use Dotenv\Dotenv;

if (class_exists('Dotenv\Dotenv') && file_exists(base_path(false) . '/.env')) {
  if (method_exists('Dotenv\Dotenv', 'createUnsafeMutable')) {
    Dotenv::createUnsafeMutable(base_path(false))->load();
  } else {
    Dotenv::createMutable(base_path(false))->load();
  }
}
return [
  "paths"        => [
    "migrations" => is_phar() ? runtime_path('phinx/database/migrations') : base_path("database/migrations"),
    "seeds"      => is_phar() ? runtime_path('phinx/database/seeds') : base_path("database/seeds")
  ],
  "environments" => [
    "default_migration_table" => "phinxlog",
    "default_environment"     => "default",
    "default"                 => [
      "adapter"   => "mysql",
      "host"      => env("MYSQL_HOST"),
      "name"      => env("MYSQL_DBNAME"),
      "user"      => env("MYSQL_USER"),
      "pass"      => env("MYSQL_PASSWORD"),
      "port"      => env("MYSQL_PORT", "3306"),
      "charset"   => "utf8mb4",
      'collation' => 'utf8mb4_general_ci',
    ],
  ]
];

Cron任务自动加载

app/cron文件夹下以类名.php形式创建Cron任务类,并实现run()方法,该方法会在系统启动时自动执行。 使用Wegar\Basic\attribute\CronRulerun()方法进行注解,以定义Cron规则。

Cron示例
<?php

# app/cron/Foo.php

namespace app\cron;

use Wegar\Basic\Attribute\CronRule;

class Foo {
    #[CronRule('*/5 * * * * *')] // 每5秒执行一次
    function run(){
        // do something
    }
}

打包文件自动释放文件

config/app.php 中设置 build_release 即可自动释放打包文件。

config/app.php示例
# config/app.php
  ...
  'build_release' => [
    '.env.example' => run_path(), # 将 .env.example 文件释放到运行目录下
    'public/' => run_path(),
    'plugin/admin/public/' => run_path(),
    'database/' => runtime_path('phinx'), # 将 database 目录释放到 phinx 运行目录下
  ],
  ...

注意

  • 将会需要并申明以下函数
    • json_success json success 响应
    • json_error json err 响应
    • ss 用于 session 快捷管理,通过修改 config/plugin/wegar/basic/helper/SessionHelper.php 增加自定义 session 名称和方法