PHP code example of aliirfaan / laravel-simple-access-log
1. Go to this page and download the library: Download aliirfaan/laravel-simple-access-log 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/ */
aliirfaan / laravel-simple-access-log example snippets
Schema::connection(config('simple-access-log.access_log_db_connection'))->create('lsac_access_logs', function (Blueprint $table) {
$table->id();
$table->dateTime('ac_date_time', $precision = 0)->index('ac_date_time_index');
$table->string('ac_actor_id')->nullable()->index('ac_actor_id_index')->comment('User id in application. Can be null in cases where an action is performed programmatically.');
$table->string('ac_actor_type', 255)->nullable()->index('ac_actor_type_index')->comment('Actor type in application. Useful if you are logging multiple types of users. Example: admin, user, guest');
$table->string('ac_actor_globac_uid')->nullable()->index('ac_actor_globac_uid_index')->comment('User id if using a single sign on facility.');
$table->string('ac_actor_username', 255)->nullable()->index('ac_actor_username_index')->comment('Username in application.');
$table->string('ac_actor_group', 255)->nullable()->index('ac_actor_group_index')->comment('User role/group in application.');
$table->string('ac_device_id', 255)->nullable()->index('ac_device_id_index')->comment('Device identifier.');
$table->string('ac_event_name', 255)->nullable()->index('ac_event_name_index')->comment('Common name for the event that can be used to filter down to similar events. Example: user.login.success, user.login.failure, user.logout');
$table->ipAddress('ac_ip_addr')->nullable()->index('ac_ip_addr_index');
$table->string('ac_server', 255)->nullable()->index('ac_server_index')->comment('Server ids or names, server location. Example: uat, production, testing, 192.168.2.10');
$table->string('ac_version', 255)->nullable()->index('ac_version_index')->comment('Version of the code/release that is sending the events.');
$table->timestamps();
});
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use aliirfaan\LaravelSimpleAccessLog\Events\LoginSucceeded; // event you want to dispatch
class TestController extends Controller
{
public function test(Request $request)
{
try {
// log access after operation
$eventData = [
'ac_date_time' => date('Y-m-d H:i:s'),
'ac_actor_id' => 5,
'ac_actor_type' => 'Model/Customer',
'ac_actor_global_uid'=> 5,
'ac_actor_username' => 'actor username',
'ac_actor_group' => 'actor group',
'ac_device_id' => 5,
'ac_event_name' => 'user.login.success',
'ac_server' => 'uat',
'ac_version'=> 'version',
'ac_ip_addr'=> $request->ip()
];
// dispatch event
LoginSucceeded::dispatch($eventData);
} catch (\Exception $e) {
report($e);
}
}
}
namespace App\Models\AccessLog;
use Illuminate\Database\Eloquent\Model;
use aliirfaan\LaravelSimpleAccessLog\Contracts\SimpleAccessLog as SimpleAccessLogContract;
use aliirfaan\LaravelSimpleAccessLog\Models\SimpleAccessLog;
// custom class that extends base model and implements contract
class AccessLog extends SimpleAccessLog implements SimpleAccessLogContract
{
public function __construct(array $attributes = [])
{
// add your additional columns to the fillable property
$this->mergeFillable(['al_custom_field_1']);
parent::__construct($attributes);
}
}