1. Go to this page and download the library: Download inmanturbo/ecow library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
inmanturbo / ecow example snippets
return [
/*
* Enable or disable the event listeners.
*/
'enabled' => env('ECOW_ENABLED', true),
/*
* The model used to store saved models.
*/
'model' => \Inmanturbo\Ecow\Models\SavedModel::class,
/*
* After this amount of days, the records in `saved_models` will be deleted
*
* This functionality uses Laravel's native pruning feature.
*/
'prune_after_days' => 365 * 1000000, // wouldn't delete this in a million years
/*
* The table name used to store saved models.
*
* Changing it is not supported at this time,
* but it's here for reference and used by the `ecow:migrate` command.
*/
'saved_models_table' => 'saved_models',
/*
* These tables will be created when running the migration.
*
* They will be dropped when running `php artisan ecow:migrate --fresh`.
*/
'migration_tables' => [
'saved_models',
'saved_model_snapshots',
],
/*
* The Models that should be saved by default.
*
* You can use '*' to save all models.
*/
'saved_models' => '*',
/*
* The Models that should not be saved by default.
*/
'unsaved_models' => [],
];
use Inmanturbo\Ecow\Facades\Ecow;
$model->fakeField = 'this is some fake data';
$model->save();
// no error
$model->fakeField;
// null
$clone = Ecow::retrieveModel(clone $model);
$clone->fakeField;
// 'this is some fake data'
Ecow::snapshotModel($model);
use Inmanturbo\Ecow\Facades\Ecow;
$versions = Ecow::savedModelVersions($model)->latest('model_version')->limit(10)->get();
foreach ($versions as $version) {
// get the saved models version
$modelVersion = $version->model_version;
// make an in memory copy of the model
$modelCopy = $version->makeRestoredModel();
// reset the current model's state to this version
$modelCopy->save();
//
}
return [
/...
/*
* The Models that should be saved by default.
*
* You can use '*' to save all models.
*/
'saved_models' => '*',
/*
* The Models that should not be saved by default.
*/
'unsaved_models' => [\App\Models\User::class],
];
return [
/...
/*
* The Models that should be saved by default.
*
* You can use '*' to save all models.
*/
'saved_models' => [\App\Models\Subscription::class],
/*
* The Models that should not be saved by default.
*/
'unsaved_models' => [],
];
app()->bind("ecow.{$event}", function () use ($pipes) {
return collect($pipes)->map(fn ($pipe) => app($pipe));
});
public function boot() {
// pipes for all eloquent.creating events
app()->bind('ecow.eloquent.creating*', fn () => collect($pipes = [
\App\MyCustom\Invokable::class,
));
}
use Inmanturbo\Ecow\Facades\Ecow;
Ecow::disable();
User::create([...]); // will not be recorded
Ecow::enable();
User::create([...]); // will be recorded
// ecow.php
return [
/*
* Enable or disable the event listeners.
*/
'enabled' => env('ECOW_ENABLED', true),
...
]