mustafakhaleddev/laravel-atomic

Atomic Admin Panel For Laravel

1.0 2019-01-03 13:25 UTC

This package is auto-updated.

Last update: 2024-04-08 06:55:33 UTC


README

atomic

🚀 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'),
         ];
     }
}

License

MIT © Mustafa Khaled