diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index a6bc80c..deb2a12 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,11 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: Ask a question
- url: https://github.com/soap/laravel-workflow-storage/discussions/new?category=q-a
+ url: https://github.com/soap/laravel-workflow-loader/discussions/new?category=q-a
about: Ask the community for help
- name: Request a feature
- url: https://github.com/soap/laravel-workflow-storage/discussions/new?category=ideas
+ url: https://github.com/soap/laravel-workflow-loader/discussions/new?category=ideas
about: Share ideas for new features
- name: Report a security issue
- url: https://github.com/soap/laravel-workflow-storage/security/policy
+ url: https://github.com/soap/laravel-workflow-loader/security/policy
about: Learn how to notify us for sensitive bugs
diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml
index 19d6917..4be470c 100644
--- a/.github/workflows/run-tests.yml
+++ b/.github/workflows/run-tests.yml
@@ -47,7 +47,7 @@ jobs:
env:
DB_USERNAME: root
DB_PASSWORD: root
- DB_DATABASE: workflow_storage_testing
+ DB_DATABASE: workflow_loader_testing
run: |
sudo /etc/init.d/mysql start
mysql -e 'CREATE DATABASE ${{ env.DB_DATABASE }};' -u${{ env.DB_USERNAME }} -p${{ env.DB_PASSWORD }}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a604c05..42b3b35 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,3 @@
# Changelog
-All notable changes to `laravel-workflow-storage` will be documented in this file.
+All notable changes to `laravel-workflow-loader` will be documented in this file.
diff --git a/README.md b/README.md
index 9c6a091..08cbf15 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
-# Database storage for Laravel workflow configuration
+# Database Loader for Laravel workflow configuration
-[](https://packagist.org/packages/soap/laravel-workflow-storage)
-[](https://github.com/soap/laravel-workflow-storage/actions?query=workflow%3Arun-tests+branch%3Amain)
-[](https://github.com/soap/laravel-workflow-storage/actions/workflows/phpstan.yml)
-[](https://github.com/soap/laravel-workflow-storage/actions?query=workflow%3A"Fix+PHP+code+style+issues"+branch%3Amain)
-[](https://packagist.org/packages/soap/laravel-workflow-storage)
+[](https://packagist.org/packages/soap/laravel-workflow-loader)
+[](https://github.com/soap/laravel-workflow-loader/actions?query=workflow%3Arun-tests+branch%3Amain)
+[](https://github.com/soap/laravel-workflow-loader/actions/workflows/phpstan.yml)
+[](https://github.com/soap/laravel-workflow-loader/actions?query=workflow%3A"Fix+PHP+code+style+issues"+branch%3Amain)
+[](https://packagist.org/packages/soap/laravel-workflow-loader)
This package extends [zerodahero/laravel-workflow](https://github.com/zerodahero/laravel-workflow) by adding option to store workflow configuration in database. Laravel workflow only support loading configuration form Laravel configuration. This package provides user to change workflow configuration without helping from developers.
@@ -16,20 +16,20 @@ This package extends [zerodahero/laravel-workflow](https://github.com/zerodahero
You can install the package via composer:
```bash
-composer require soap/laravel-workflow-storage
+composer require soap/laravel-workflow-loader
```
You can publish and run the migrations with:
```bash
-php artisan vendor:publish --tag="workflow-storage-migrations"
+php artisan vendor:publish --tag="workflow-loader-migrations"
php artisan migrate
```
You can publish the config file with:
```bash
-php artisan vendor:publish --tag="workflow-storage-config"
+php artisan vendor:publish --tag="workflow-loader-config"
```
This is the contents of the published config file:
diff --git a/canvas.yaml b/canvas.yaml
index 1ee869f..215bfbd 100644
--- a/canvas.yaml
+++ b/canvas.yaml
@@ -1,6 +1,6 @@
preset: package
-namespace: Soap\WorkflowStorage
+namespace: Soap\WorkflowLoader
user-auth-model:
paths:
@@ -15,13 +15,13 @@ migration:
prefix: ''
console:
- namespace: Soap\WorkflowStorage\Console
+ namespace: Soap\WorkflowLoader\Console
model:
- namespace: Soap\WorkflowStorage\Models
+ namespace: Soap\WorkflowLoader\Models
provider:
- namespace: Soap\WorkflowStorage\Providers
+ namespace: Soap\WorkflowLoader\Providers
testing:
- namespace: Soap\WorkflowStorage\Tests
+ namespace: Soap\WorkflowLoader\Tests
diff --git a/composer.json b/composer.json
index b672ddc..9a7962e 100644
--- a/composer.json
+++ b/composer.json
@@ -1,12 +1,12 @@
{
- "name": "soap/laravel-workflow-storage",
- "description": "This is my package laravel-workflow-storage",
+ "name": "soap/laravel-workflow-loader",
+ "description": "This is my package laravel-workflow-loader",
"keywords": [
"Soap",
"laravel",
- "laravel-workflow-storage"
+ "laravel-workflow-loader"
],
- "homepage": "https://github.com/soap/laravel-workflow-storage",
+ "homepage": "https://github.com/soap/laravel-workflow-loader",
"license": "MIT",
"authors": [
{
@@ -37,20 +37,20 @@
},
"autoload": {
"psr-4": {
- "Soap\\WorkflowStorage\\": "src/",
- "Soap\\WorkflowStorage\\Database\\Factories\\": "database/factories/"
+ "Soap\\WorkflowLoader\\": "src/",
+ "Soap\\WorkflowLoader\\Database\\Factories\\": "database/factories/"
}
},
"autoload-dev": {
"psr-4": {
- "Soap\\WorkflowStorage\\Tests\\": "tests/",
+ "Soap\\WorkflowLoader\\Tests\\": "tests/",
"Workbench\\App\\": "workbench/app/",
"Workbench\\Database\\Factories\\": "workbench/database/factories/"
}
},
"scripts": {
"post-autoload-dump": "@composer run prepare",
- "clear": "@php vendor/bin/testbench package:purge-laravel-workflow-storage --ansi",
+ "clear": "@php vendor/bin/testbench package:purge-laravel-workflow-loader --ansi",
"prepare": "@php vendor/bin/testbench package:discover --ansi",
"build": [
"@composer run prepare",
@@ -76,10 +76,10 @@
"extra": {
"laravel": {
"providers": [
- "Soap\\WorkflowStorage\\WorkflowStorageServiceProvider"
+ "Soap\\WorkflowLoader\\WorkflowLoaderServiceProvider"
],
"aliases": {
- "WorkflowStorage": "Soap\\WorkflowStorage\\Facades\\WorkflowStorage"
+ "WorkflowLoader": "Soap\\WorkflowLoader\\Facades\\WorkflowLoader"
}
}
},
diff --git a/config/workflow-storage.php b/config/workflow_loader.php
similarity index 74%
rename from config/workflow-storage.php
rename to config/workflow_loader.php
index 73b6b3a..37c7e71 100644
--- a/config/workflow-storage.php
+++ b/config/workflow_loader.php
@@ -1,13 +1,13 @@
[
+ 'databaseLoader' => [
'tableNames' => [
'workflows' => 'workflows',
'workflow_states' => 'workflow_states',
'workflow_transitions' => 'workflow_transitions',
'workflow_state_transitions' => 'workflow_state_transitions',
],
- 'loaderClass' => \Soap\WorkflowStorage\DatabaseStorage::class,
+ 'loaderClass' => \Soap\WorkflowLoader\DatabaseLoader::class,
],
];
diff --git a/database/factories/WorkflowFactory.php b/database/factories/WorkflowFactory.php
index b5d93c2..c848cb3 100644
--- a/database/factories/WorkflowFactory.php
+++ b/database/factories/WorkflowFactory.php
@@ -1,9 +1,9 @@
id;
+ $workflowId = is_int($workflow) ? $workflow : $workflow->getKey();
return $this->state(function (array $attributes) use ($workflowId) {
return [
diff --git a/database/factories/WorkflowTransitionFactory.php b/database/factories/WorkflowTransitionFactory.php
index 92e87ce..eb5368e 100644
--- a/database/factories/WorkflowTransitionFactory.php
+++ b/database/factories/WorkflowTransitionFactory.php
@@ -1,9 +1,9 @@
-
+
diff --git a/resources/stubs/WorkflowServiceProvider.php.stub b/resources/stubs/WorkflowServiceProvider.php.stub
index 62a8a90..94c4cde 100644
--- a/resources/stubs/WorkflowServiceProvider.php.stub
+++ b/resources/stubs/WorkflowServiceProvider.php.stub
@@ -3,7 +3,7 @@
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
-use Soap\WorkflowStorage\DatabaseLoader;
+use Soap\WorkflowLoader\DatabaseLoader;
class WorkflowServiceProvider extends ServiceProvider
{
@@ -15,7 +15,7 @@ class WorkflowServiceProvider extends ServiceProvider
public function boot()
{
$registy = app()->make('workflow');
- $workflowLoader = app()->make('workflow-storage');
+ $workflowLoader = app()->make('workflow-loader');
foreach ($wokflowLoader->all() as $workflow => $config) {
$registy->addFromArray($workflow, $config);
}
diff --git a/src/Commands/WorkflowStorageListCommand.php b/src/Commands/WorkflowLoaderListCommand.php
similarity index 59%
rename from src/Commands/WorkflowStorageListCommand.php
rename to src/Commands/WorkflowLoaderListCommand.php
index f2363a5..0873cf7 100644
--- a/src/Commands/WorkflowStorageListCommand.php
+++ b/src/Commands/WorkflowLoaderListCommand.php
@@ -1,12 +1,12 @@
config = $config;
}
public function getTableNames(): array
{
- return $this->config[self::KEY_TABLENAMES];
+ return $this->config[self::KEY_TABLE_NAMES];
}
public function getTableName(string $name): string
diff --git a/src/Enums/WorkflowTypeEnum.php b/src/Enums/WorkflowTypeEnum.php
index 4fb4e3d..f3d9b47 100644
--- a/src/Enums/WorkflowTypeEnum.php
+++ b/src/Enums/WorkflowTypeEnum.php
@@ -1,6 +1,6 @@
getWorkflowTableName();
+ return app(DatabaseLoader::class)->getWorkflowTableName();
}
public function states(): HasMany
diff --git a/src/Models/WorkflowState.php b/src/Models/WorkflowState.php
index 2d2a754..1169b0c 100644
--- a/src/Models/WorkflowState.php
+++ b/src/Models/WorkflowState.php
@@ -1,11 +1,11 @@
getWorkflowStateTableName();
+ return app(DatabaseLoader::class)->getWorkflowStateTableName();
}
public function workflow(): BelongsTo
diff --git a/src/Models/WorkflowStateTransition.php b/src/Models/WorkflowStateTransition.php
index ecb61d5..72b1228 100644
--- a/src/Models/WorkflowStateTransition.php
+++ b/src/Models/WorkflowStateTransition.php
@@ -1,11 +1,11 @@
getWorkflowStateTransitionTableName();
+ return app(DatabaseLoader::class)->getWorkflowStateTransitionTableName();
}
public function transition(): BelongsTo
diff --git a/src/Models/WorkflowTransition.php b/src/Models/WorkflowTransition.php
index 6c9d9a1..04ac77d 100644
--- a/src/Models/WorkflowTransition.php
+++ b/src/Models/WorkflowTransition.php
@@ -1,12 +1,12 @@
getWorkflowTransitionTableName();
+ return app(DatabaseLoader::class)->getWorkflowTransitionTableName();
}
public function workflow(): BelongsTo
diff --git a/src/Repositories/WorkflowRepository.php b/src/Repositories/WorkflowRepository.php
index 0741778..e5dc50a 100644
--- a/src/Repositories/WorkflowRepository.php
+++ b/src/Repositories/WorkflowRepository.php
@@ -1,8 +1,8 @@
registerLoader($loader);
}
}
- public function registerLoader(WorkflowStorageContract $loader)
+ public function registerLoader(WorkflowLoaderContract $loader)
{
$this->loaders[$loader::class] = $loader;
}
- public function getLoader(string $loader): WorkflowStorageContract
+ public function getLoader(string $loader): WorkflowLoaderContract
{
return $this->loaders[$loader];
}
diff --git a/src/WorkflowStorageServiceProvider.php b/src/WorkflowLoaderServiceProvider.php
similarity index 52%
rename from src/WorkflowStorageServiceProvider.php
rename to src/WorkflowLoaderServiceProvider.php
index 44cde99..0683dcb 100644
--- a/src/WorkflowStorageServiceProvider.php
+++ b/src/WorkflowLoaderServiceProvider.php
@@ -1,12 +1,12 @@
name('laravel-workflow-storage')
- ->hasConfigFile()
+ ->name('laravel-workflow-loader')
+ ->hasConfigFile('workflow_loader')
->hasMigrations([
'wf1_create_workflows_table',
'wf2_create_workflow_states_table',
'wf3_create_workflow_transitions_table',
'wf4_create_workflow_state_transitions_table',
])
- ->hasCommand(WorkflowStorageListCommand::class)
+ ->hasCommand(WorkflowLoaderListCommand::class)
->publishesServiceProvider('WorkflowServiceProvider');
}
public function packageRegistered()
{
- $this->app->singleton('workflow-storage', function ($app) {
- $workflowStorage = new WorkflowStorage($app->make(DatabaseStorage::class));
- });
-
- $this->app->singleton(DatabaseStorage::class, function ($app) {
- $config = $app->make('config')->get('workflow-storage.databaseStorage', []);
+ $this->app->when(\Soap\WorkflowLoader\DatabaseLoader::class)
+ ->needs('$config')
+ ->give(config('workflow_loader.databaseLoader'));
- return new DatabaseStorage(config: $config);
+ $this->app->singleton('workflow-loader', function ($app) {
+ $workflowLoader = new WorkflowLoader($app->make(\Soap\WorkflowLoader\DatabaseLoader::class));
});
-
}
}
diff --git a/tests/Feature/WorkflowStorageTest.php b/tests/Feature/WorkflowStorageTest.php
index 420bd95..0e96a98 100644
--- a/tests/Feature/WorkflowStorageTest.php
+++ b/tests/Feature/WorkflowStorageTest.php
@@ -1,8 +1,8 @@
in(__DIR__);
diff --git a/tests/TestCase.php b/tests/TestCase.php
index c4d09d9..c598058 100644
--- a/tests/TestCase.php
+++ b/tests/TestCase.php
@@ -1,13 +1,13 @@
create([
diff --git a/tests/Unit/WorkflowStateModelTest.php b/tests/Unit/WorkflowStateModelTest.php
index f204f81..aae9765 100644
--- a/tests/Unit/WorkflowStateModelTest.php
+++ b/tests/Unit/WorkflowStateModelTest.php
@@ -1,7 +1,7 @@
create();
diff --git a/tests/Unit/WorkflowTransitionModelTest.php b/tests/Unit/WorkflowTransitionModelTest.php
index 7b7727b..052df5b 100644
--- a/tests/Unit/WorkflowTransitionModelTest.php
+++ b/tests/Unit/WorkflowTransitionModelTest.php
@@ -1,8 +1,8 @@
create();