mustafakhaleddev / laravel-atomic
Atomic Admin Panel For Laravel
Requires
- php: ^7.1.3
- laracasts/flash: 3.0.2
- yajra/laravel-datatables-oracle: ~8.0
This package is auto-updated.
Last update: 2024-11-08 08:09:59 UTC
README
🚀 Documentation
Atomic Panel full documentation is here.
💪 Support Me
Support me in Patreon to help me keep going.
🔥 Getting Started
Atomic Panel is a beautifully designed administration panel for Laravel. To make you the most productive developer in the galaxy and give you the opportunity to lead the future.
Requirements
- PHP:
^7.0
- Laravel:
^5.5
Installation
Require this package in the composer.json
of your Laravel project. This will download the package:
composer require mustafakhaleddev/laravel-atomic
Install AtomicPanel:
php artisan atomic:install
Add the ServiceProvider in config/app.php
:
'providers' => [ /* * Package Service Providers... */ App\Providers\AtomicServiceProvider::class, ]
Published files with installation:
-app
-Providers
-AtomicServiceProvider.php
__________________________
-config
-AtomicPanel.php
__________________________
-public
-vendor
-atomic
__________________________
-resources
-views
-vendor
-atomic
__________________________
AtomicPanel
To make admin user:
php artisan atomic:user
Then open https://yourwebsite.domain/atomic
.
Authorizing Atomic
Within your app/Providers/AtomicServiceProvider.php
file, there is a gate method. This authorization gate controls access to Atomic in non-local environments. By default, any user can access the Atomic Panel when the current application environment is local. You are free to modify this gate as needed to restrict access to your Atomic installation:
/** * Register the Atomic gate. * * This gate determines who can access Atomic in non-local environments. * * @return void */ protected function gate() { Gate::define('viewAtomic', function ($user) { return in_array($user->email, [ 'atomic@mustafakhaled.com' ]); }); }
Usage
Atomic Panel is the best CRUD. It works with Laravel models. If you don't want to use Laravel models, you can create your own pages.
⏰ 3 Steps for Best CRUD
☝ Step 1
Include AtomicModel
trait in your model:
<?php namespace App; use Illuminate\Database\Eloquent\Model; use MustafaKhaled\AtomicPanel\AtomicModel; class MyModel extends Model { use AtomicModel; }
☝ Step 2
Override AtomicFields()
method in model:
<?php namespace App; use Illuminate\Database\Eloquent\Model; use MustafaKhaled\AtomicPanel\AtomicModel; class MyModel extends Model { use AtomicModel; public static function AtomicFields() { return []; } }
☝ Step 3
Register your CRUD fields:
<?php namespace App; use Illuminate\Database\Eloquent\Model; use MustafaKhaled\AtomicPanel\AtomicModel; use MustafaKhaled\AtomicPanel\Fields\ID; use MustafaKhaled\AtomicPanel\Fields\Text; use MustafaKhaled\AtomicPanel\Fields\Trix; class MyModel extends Model { use AtomicModel; public static function AtomicFields() { return [ ID::make('id', 'id'), Text::make('Title', 'title'), Trix::make('Content', 'content'), ]; } }