thanosalexander / activity
This package keeps activities for various actions
Requires
- php: >=5.3
Requires (Dev)
- phpunit/phpunit: 5.*
This package is not auto-updated.
Last update: 2024-12-17 20:57:37 UTC
README
Tracks activities fired when specific types happened.
Installation
To get the latest version of Activities simply require it in your composer.json
file.
"thanosalexander/activity":"~1.0"
You'll then need to run composer install
to download it and have the autoloader updated.
Once Activities is installed you need to register the service provider with the application. Open up config/app.php
and find the providers
key.
'providers' => array( ... ... \Thanosalexander\Activity\ActivityServiceProvider::class, )
Activities also ships with two facades which provides the static syntax for creating activities. You can register the facade in the aliases
key of your config/app.php
file.
'aliases' => array( ... .. 'Activity' => \Thanosalexander\Activity\Facades\Activity::class, 'Type' => \Thanosalexander\Activity\Facades\Type::class )
Publish the configurations
Run this on the command line from the root of your project:
$ php artisan vendor:publish
A configuration file will be publish to config/activities.php
Also the migrations will be published into migrations folder!
Run the migrations
Activities package comes with two tables, activities_types
and activities
.
Just go to terminal and run
$ php artisan migrate
Now the tables are created!
Usage
Create a new Type
$type= \Type::create([ 'name'=>'login', 'description'=>'login action', 'label'=>'Login' ]);
All the fields are required in order to create an activity type! Also the
name
is unique!
Create a new Activity
$activity = \Activity::create([ 'user_id'=>0, 'type_id'=>3, 'content'=>'The content of this action', 'ip'=> \Illuminate\Support\Facades\Request::getClientIp() ]);
The
user_id
field is not required in order to create an Activity! However for guest users actions the field will benullable
Controllers
The package comes with two controllers TypeController
and ActivityController
.
They are almost resource controller with very simple syntax.
Activities Routes
/**
* Activities Routes
*/
Route::get('activities',array(
'uses'=>'thanosalexander\activity\Http\Controllers\ActivityController@index',
'as'=>'activities.index'
));
Route::post('activities/create',array(
'uses'=>'thanosalexander\activity\Http\Controllers\ActivityController@store',
'as'=>'activities.store'
));
Route::put('activities/update/{id}',array(
'uses'=>'thanosalexander\activity\Http\Controllers\ActivityController@update',
'as'=>'activities.update'
));
Route::get('activities/show/{id}',array(
'uses'=>'thanosalexander\activity\Http\Controllers\ActivityController@show',
'as'=>'activities.show'
));
Route::delete('activities/delete/{id}',array(
'uses'=>'thanosalexander\activity\Http\Controllers\ActivityController@delete',
'as'=>'activities.delete'
));
Types Routes
/**
* Types Routes
*/
Route::get('types',array(
'uses'=>'thanosalexander\activity\Http\Controllers\TypeController@index',
'as'=>'types.index'
));
Route::post('types/create',array(
'uses'=>'thanosalexander\activity\Http\Controllers\TypeController@store',
'as'=>'types.store'
));
Route::put('types/update/{id}',array(
'uses'=>'thanosalexander\activity\Http\Controllers\TypeController@update',
'as'=>'types.update'
));
Route::get('types/show/{id}',array(
'uses'=>'thanosalexander\activity\Http\Controllers\TypeController@show',
'as'=>'types.show'
));
Route::delete('types/delete/{id}',array(
'uses'=>'thanosalexander\activity\Http\Controllers\TypeController@delete',
'as'=>'types.delete'
));