在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',
],
]
];
在app/cron
文件夹下以类名.php
形式创建Cron任务类,并实现run()
方法,该方法会在系统启动时自动执行。
使用Wegar\Basic\attribute\CronRule
对run()
方法进行注解,以定义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 名称和方法