PHP code example of charlielangridge / playa

1. Go to this page and download the library: Download charlielangridge/playa 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/ */

    

charlielangridge / playa example snippets


use Illuminate\Support\Facades\Route;

Route::get('/join/{game}', JoinGameController::class)
    ->middleware(['web', 'playa'])
    ->name('games.join');

use Illuminate\Http\Request;

public function __invoke(Request $request)
{
    $player = $request->player();

    // $player is an instance of CharlieLangridge\Playa\Models\Player
}

use CharlieLangridge\Playa\Facades\Playa;

$player = Playa::player();

use CharlieLangridge\Playa\Facades\Playa;

$player = Playa::findByUuid($uuid);

$player = Playa::create([
    'name' => 'Sam',
    'username' => 'sam-27',
]);

$player = Playa::findExisting($request);

use CharlieLangridge\Playa\IdentityPolicy;

$player = Playa::resolve($request, IdentityPolicy::Session);
$player = Playa::resolve($request, IdentityPolicy::Rolling);

$player = request()->player();

$player->update([
    'name' => 'Sam',
    'username' => 'sam-27',
    'data' => [
        'team' => 'blue',
        'accepted_rules_at' => now()->toIso8601String(),
    ],
]);

namespace App\Models;

use CharlieLangridge\Playa\Models\Player as PlayaPlayer;
use Illuminate\Database\Eloquent\Relations\BelongsTo;

class Player extends PlayaPlayer
{
    public function team(): BelongsTo
    {
        return $this->belongsTo(Team::class);
    }
}

'player_model' => App\Models\Player::class,

$player = request()->player();

$player->linkUser(auth()->user());

$player->unlinkUser();

'auto_link_authenticated_user' => true,

'lifetime_minutes' => 60 * 24 * 30,

'renew_on_visit' => true,

use Illuminate\Support\Facades\Schedule;

Schedule::command('playa:prune')->daily();

return [
    'table_name' => 'playa_players',

    'player_model' => CharlieLangridge\Playa\Models\Player::class,

    'lifetime_minutes' => 60 * 24 * 30,

    'renew_on_visit' => true,

    'default_policy' => 'rolling',

    'policies' => [
        'session' => [
            'lifetime_minutes' => 60 * 24,
            'renew_on_visit' => false,
            'cookie_lifetime_minutes' => 0,
        ],
        'rolling' => [],
    ],

    'cookie' => [
        'name' => 'playa_player',
        'path' => '/',
        'domain' => null,
        'secure' => null,
        'http_only' => true,
        'same_site' => 'lax',
        'lifetime_minutes' => null,
    ],

    'user_model' => null,
    'user_id_type' => 'bigint',

    'auto_link_authenticated_user' => false,
];

'table_name' => 'players',

'cookie' => [
    'secure' => true,
],

'user_id_type' => 'bigint', // bigint, uuid, ulid, or string

use CharlieLangridge\Playa\Events\PlayerCreated;
use Illuminate\Support\Facades\Event;

Event::listen(PlayerCreated::class, function (PlayerCreated $event) {
    // $event->player
});

use CharlieLangridge\Playa\Facades\Playa;

Playa::forget();

Route::get('/join/{game}', JoinGameController::class)
    ->middleware(['web', 'playa']);

request()->player()->linkUser(auth()->user());
bash
php artisan vendor:publish --tag="playa-migrations"
php artisan migrate
bash
php artisan vendor:publish --tag="playa-config"
bash
php artisan playa:prune --hours=24
bash
composer analyse