Add Subscriber demo

This commit is contained in:
2021-01-14 15:00:07 +03:00
parent cb1f3a6bb5
commit 45a7e8abce
8 changed files with 83 additions and 17 deletions

20
core/app/Models/Right.php Normal file
View File

@@ -0,0 +1,20 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Right extends Model {
protected $table = 'rights';
public static function add($code, $name)
{
if(Right::where('code', $code)->count() == 0) {
$right = new Right([
'code' => $code,
'name' => $name
]);
$right->save();
}
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Subscriber extends Model
{
protected $table = 'subscribers';
public static function add($event, $callback, $weight = 0)
{
list($destination_module, $destination_method) = explode(':', $callback);
list($source_module, $source_method) = explode(':', $event);
$code = strtolower($destination_module . '_' . $destination_method . '_after_' . $source_module . '_' . $source_method);
if (Subscriber::where('code', $code)->count() == 0) {
$subscriber = new Subscriber([
'code' => $code,
'destination_module' => strtolower($destination_module),
'destination_method' => strtolower($destination_method),
'source_module' => strtolower($source_module),
'source_method' => strtolower($source_method),
'weight' => $weight
]);
$subscriber->save();
}
}
}

View File

@@ -24,9 +24,10 @@
"Database\\Factories\\": "../database/factories/", "Database\\Factories\\": "../database/factories/",
"Database\\Seeders\\": "database/seeders", "Database\\Seeders\\": "database/seeders",
"Database\\Component\\Seeders\\": "../database/seeders/", "Database\\Component\\Seeders\\": "../database/seeders/",
"Database\\Migrations\\": "../database/migrations", "Database\\Migrations\\": "../database/migrations/",
"App\\Commands\\": "../commands/", "App\\Commands\\": "../commands/",
"App\\Models\\": "../models/", "App\\Models\\": "app/Models/",
"App\\Component\\Models\\": "../models/",
"App\\Helpers\\": "app/Helpers/" "App\\Helpers\\": "app/Helpers/"
} }
}, },

View File

@@ -0,0 +1,19 @@
<?php
namespace Database\Component\Seeders;
use App\Models\Subscriber;
use Illuminate\Database\Seeder;
class AddAfterMenuUploadSubscriber extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Subscriber::add('sync:postmenu', 'hello:gethello', 10);
}
}

View File

@@ -2,6 +2,7 @@
namespace Database\Component\Seeders; namespace Database\Component\Seeders;
use App\Models\Right;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
class AddTestRight extends Seeder class AddTestRight extends Seeder
@@ -13,11 +14,6 @@ class AddTestRight extends Seeder
*/ */
public function run() public function run()
{ {
if(\App\Models\Right::where('code', 'test')->count() == 0) { Right::add('test', 'Тестовый раздел');
$right = new \App\Models\Right();
$right->code = 'test';
$right->name = 'Тестовый раздел';
$right->save();
}
} }
} }

View File

@@ -1,9 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Right extends Model {
protected $table = 'rights';
}

9
models/Test.php Normal file
View File

@@ -0,0 +1,9 @@
<?php
namespace App\Component\Models;
use Illuminate\Database\Eloquent\Model;
class Test extends Model {
protected $table = 'test';
}