Skip to content

Commit

Permalink
ref!: use HeliumCore naming on classes and app bindings
Browse files Browse the repository at this point in the history
  • Loading branch information
vorban committed Feb 11, 2025
1 parent 5c3d48c commit 1ee3dd1
Show file tree
Hide file tree
Showing 16 changed files with 76 additions and 43 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
"Webup\\Helium\\HeliumServiceProvider"
],
"aliases": {
"Helium": "Webup\\Helium\\Facades\\Helium",
"HeliumCore": "Webup\\Helium\\Facades\\HeliumCore",
"Setting": "Webup\\Helium\\Facades\\Setting"
}
}
Expand Down
17 changes: 17 additions & 0 deletions config/helium-core.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<?php

use Webup\Helium\Models\User;

return [
'route' => [
/*
Expand Down Expand Up @@ -39,6 +41,19 @@
'settings-table' => 'settings',
],

/*
|--------------------------------------------------------------------------
| models.*
|--------------------------------------------------------------------------
|
| Configures all models used by helium.
|
*/

'models' => [
'user' => User::class,
],

/*
|--------------------------------------------------------------------------
| auth.*
Expand All @@ -47,11 +62,13 @@
| Configures authentication for helium.
| Helium automatically declares its own guard and provider.
|
| enabled: Whether to declare the guard and provider.
| guard-name: The name of the guard to use for authentication.
| provider-name: The name of the provider used by the guard.
*/

'auth' => [
'enabled' => true,
'guard-name' => 'helium',
'provider-name' => 'users',
],
Expand Down
9 changes: 3 additions & 6 deletions resources/views/components/layout/element/profil.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,13 @@
<div class="flex h-[70px] items-center">
<span class="inline-flex h-9 w-9 items-center justify-center rounded-md bg-slate-200">
<span class="text-xs font-medium leading-none text-slate-700">
{{ Helium::user()->initials }}
{{ HeliumCore::user()->initials }}
</span>
</span>
<div class="ml-3">
<div class="font-medium text-gray-700 group-hover:text-gray-900">
{{ Helium::user()->name }}</div>
<button class="flex items-center text-sm"
aria-label="Logout"
title="Logout"
data-submit="logout-form">
{{ HeliumCore::user()->name }}</div>
<button class="flex items-center text-sm" aria-label="Logout" title="Logout" data-submit="logout-form">
<span>Se déconnecter</span>
<x-tabler-logout class="ml-1 h-5" />
</button>
Expand Down
2 changes: 1 addition & 1 deletion resources/views/components/layout/main.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
</div>
</main>

<form id="logout-form" action="{{ Helium::route('logout') }}" method="post">
<form id="logout-form" action="{{ HeliumCore::route('logout') }}" method="post">
@csrf
</form>

Expand Down
6 changes: 3 additions & 3 deletions resources/views/components/menu/index.blade.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<div class="space-y-1">
<x-helium-core::menu.item icon="tabler-users-group" :opened="Helium::isRoute('user.*')">
<x-helium-core::menu.item icon="tabler-users-group" :opened="HeliumCore::isRoute('user.*')">
Helium Users
<x-slot:sublevel>
<x-helium-core::menu.sub :url="Helium::route('user.index')" :current="Helium::isRoute('user.*')">Users</x-helium-core::menu.sub>
<x-helium-core::menu.sub :url="HeliumCore::route('user.index')" :current="HeliumCore::isRoute('user.*')">Users</x-helium-core::menu.sub>
<x-helium-core::menu.sub url="#">Roles</x-helium-core::menu.sub>
</x-slot:sublevel>
</x-helium-core::menu.item>

<x-helium-core::menu.item url="{{ Helium::route('setting.index') }}" icon="tabler-settings" :current="Helium::isRoute('setting.*')">Settings</x-helium-core::menu.item>
<x-helium-core::menu.item url="{{ HeliumCore::route('setting.index') }}" icon="tabler-settings" :current="HeliumCore::isRoute('setting.*')">Settings</x-helium-core::menu.item>
</div>
2 changes: 1 addition & 1 deletion resources/views/livewire/user-table.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
</thead>
<tbody>
@foreach ($this->users as $user)
<tr data-link="{{ Helium::route('user.edit', $user->id) }}">
<tr data-link="{{ HeliumCore::route('user.edit', $user->id) }}">
<td class="text-right">{{ $user->id }}</td>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
Expand Down
2 changes: 1 addition & 1 deletion resources/views/pages/login.blade.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<x-helium-core::layout.auth title="Log in">
<form action="{{ Helium::route('postLogin') }}" method="post">
<form action="{{ HeliumCore::route('postLogin') }}" method="post">
@csrf
<x-helium-core::box>
<x-helium-core::form.input label="Email" type="email" name="email" required />
Expand Down
2 changes: 1 addition & 1 deletion resources/views/pages/user/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<x-slot:topbar>
<x-helium-core::layout.element.topbar title="Users">
<x-slot:actions>
<x-helium-core::button :href="Helium::route('user.create')" label="Create" />
<x-helium-core::button :href="HeliumCore::route('user.create')" label="Create" />
</x-slot:actions>
</x-helium-core::layout.element.topbar>
</x-slot:topbar>
Expand Down
7 changes: 4 additions & 3 deletions src/Facades/Helium.php → src/Facades/HeliumCore.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,18 @@
use Webup\Helium\Models\User;

/**
* @see \Webup\Helium\Helium
* @see \Webup\Helium\HeliumCore
*
* @method static Closure getDefaultStubProcessor()
* @method static ?User user()
* @method static string userClass()
* @method static string route(string $name, mixed $parameters = [], bool $absolute = true)
* @method static bool isRoute(string $pattern)
*/
class Helium extends Facade
class HeliumCore extends Facade
{
protected static function getFacadeAccessor()
{
return \Webup\Helium\Helium::class;
return \Webup\Helium\HeliumCore::class;
}
}
13 changes: 8 additions & 5 deletions src/Helium.php → src/HeliumCore.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,20 @@

namespace Webup\Helium;

use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Route;
use Webup\Helium\Models\User;

class Helium
class HeliumCore
{
public function user(): ?User
public function user(): ?mixed
{
/** @var User */
$user = auth(config('helium-core.auth.guard-name'))->user();
return auth(config('helium-core.auth.guard-name'))->user();
}

return $user;
public function userClass(): string
{
return Config::get('helium-core.models.user', User::class);
}

public function route(string $name, mixed $parameters = [], bool $absolute = true): string
Expand Down
12 changes: 9 additions & 3 deletions src/HeliumServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
use Illuminate\Support\ServiceProvider;
use Livewire\Livewire;
use Webup\Helium\Livewire\UserTable;
use Webup\Helium\Models\User;

class HeliumServiceProvider extends ServiceProvider
{
Expand Down Expand Up @@ -37,7 +36,10 @@ public function boot()
$this->bootAuth();
}

public function register() {}
public function register()
{
$this->app->bind('helium-core', fn () => new Helium);
}

/*
|--------------------------------------------------------------------------
Expand Down Expand Up @@ -83,10 +85,14 @@ protected function bootRoutes()

protected function bootAuth()
{
if (! Config::get('helium-core.auth.enabled')) {
return;
}

$provider = Config::get('helium-core.auth.provider-name');
Config::set("auth.providers.$provider", [
'driver' => 'eloquent',
'model' => User::class,
'model' => Config::get('helium-core.models.user'),
]);

$guard = Config::get('helium-core.auth.guard-name');
Expand Down
3 changes: 2 additions & 1 deletion src/Http/Controllers/AuthController.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Auth;
use Webup\Helium\Facades\HeliumCore;
use Webup\Helium\Traits\AuthenticatesUsers;

class AuthController extends Controller
Expand All @@ -22,6 +23,6 @@ public function showLoginForm()

public function redirectPath()
{
return route('helium::dashboard');
return HeliumCore::route('dashboard');
}
}
26 changes: 16 additions & 10 deletions src/Http/Controllers/UserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,16 @@
use Illuminate\Support\Arr;
use Illuminate\Validation\Rule;
use Illuminate\Validation\Rules\Password;
use Webup\Helium\Facades\Helium;
use Webup\Helium\Models\User;
use Webup\Helium\Facades\HeliumCore;

class UserController extends Controller
{
public function index()
{
$class = HeliumCore::userClass();

return view('helium-core::pages.user.index', [
'users' => User::all(),
'users' => $class::all(),
]);
}

Expand All @@ -26,7 +27,8 @@ public function create()

public function edit($id)
{
$user = User::findOrFail($id);
$class = HeliumCore::userClass();
$user = $class::findOrFail($id);

return view('helium-core::pages.user.edit', compact('user'));
}
Expand All @@ -46,9 +48,10 @@ public function store(Request $request)
],
]);

User::create($data);
$class = HeliumCore::userClass();
$class::create($data);

return redirect()->route('helium-core::user.index');
return redirect()->to(HeliumCore::route('user.index'));
}

public function update(Request $request, $id)
Expand All @@ -70,17 +73,20 @@ public function update(Request $request, $id)
unset($data['password']);
}

$user = User::findOrFail($id);
$class = HeliumCore::userClass();
$user = $class::findOrFail($id);

$user->fill($data);
$user->save();

return redirect()->to(Helium::route('user.show', $user->id));
return redirect()->to(HeliumCore::route('user.show', $user->id));
}

public function destroy($id)
{
User::findOrFail($id)->delete();
$class = HeliumCore::userClass();
$class::findOrFail($id)->delete();

return redirect()->to(Helium::route('user.index'));
return redirect()->to(HeliumCore::route('user.index'));
}
}
6 changes: 3 additions & 3 deletions src/Http/Middleware/Authenticate.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
use Exception;
use Illuminate\Auth\Middleware\Authenticate as MiddlewareAuthenticate;
use Illuminate\Http\Request;
use Webup\Helium\Facades\Helium;
use Webup\Helium\Facades\HeliumCore;

class Authenticate extends MiddlewareAuthenticate
{
protected function redirectTo(Request $request)
{
if (Helium::isRoute('*')) {
return Helium::route('login');
if (HeliumCore::isRoute('*')) {
return HeliumCore::route('login');
}

throw new Exception('Unauthenticated call.');
Expand Down
4 changes: 2 additions & 2 deletions src/Http/Middleware/RedirectIfAuthenticated.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

use Illuminate\Auth\Middleware\RedirectIfAuthenticated as GuestMiddleware;
use Illuminate\Http\Request;
use Webup\Helium\Facades\Helium;
use Webup\Helium\Facades\HeliumCore;

class RedirectIfAuthenticated extends GuestMiddleware
{
Expand All @@ -15,6 +15,6 @@ public static function using($guard, ...$others)

protected function redirectTo(Request $request): ?string
{
return Helium::route('dashboard');
return HeliumCore::route('dashboard');
}
}
6 changes: 4 additions & 2 deletions src/Livewire/UserTable.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,17 @@

use Livewire\Component;
use Livewire\WithPagination;
use Webup\Helium\Models\User;
use Webup\Helium\Facades\HeliumCore;

class UserTable extends Component
{
use WithPagination;

public function getUsersProperty()
{
return User::paginate(10);
$class = HeliumCore::userClass();

return $class::paginate(10);
}

public function render()
Expand Down

0 comments on commit 1ee3dd1

Please sign in to comment.