Coder Social home page Coder Social logo

bastinald / laravel-livewire-ui Goto Github PK

View Code? Open in Web Editor NEW
101.0 5.0 17.0 199 KB

Laravel Livewire UI, Auth, & CRUD starter kit.

PHP 64.98% Blade 33.45% JavaScript 0.88% SCSS 0.70%
laravel livewire ui bootstrap auth crud scaffolding package laravel-livewire php generator commands

laravel-livewire-ui's Introduction

Laravel Livewire Ui

This package will create UI & auth scaffolding for your next Laravel project through a single command. It does so using Laravel Livewire & Bootstrap 5. Think of it as a minimal, modernized version of the old Laravel UI package. This is ideal for people who prefer Bootstrap over Tailwind, and don't need all the extra's that come with Jetstream.

Documentation

Requirements

  • A server with Laravel 8 support
  • NPM installed on the dev machine

Packages Used

The following packages are used by this package, so you may want to become familiar with them:

Installation

This package was designed to work with new Laravel projects.

Make a Laravel project via Valet, Docker, or whatever you prefer:

laravel new my-project

Configure your .env APP, DB, and MAIL values:

APP_*
DB_*
MAIL_*

Require the package via composer:

composer require bastinald/laravel-livewire-ui

Make UI scaffolding:

php artisan make:ui

Or, make UI scaffolding including auth:

php artisan make:ui -a

Commands

Making UI

Make UI scaffolding including the layouts, assets, NPM config, etc.:

php artisan make:ui {--a|--auth} {--force}

Use the -a option to make auth at the same time.

Making Auth

Make auth scaffolding including login, register, password resets, etc.:

php artisan make:auth {--force}

Only run this command after making UI if you did not use the -a option.

Clearing the Log

Delete the laravel.log file:

php artisan log:clear

Publishing Stubs

Use your own UI & auth stubs by publishing package files:

php artisan vendor:publish --tag=laravel-livewire-ui

Update the stub_path in config/laravel-livewire-ui.php:

'stub_path' => resource_path('stubs/vendor/laravel-livewire-ui'),

Now edit the stub files inside resources/stubs/vendor/laravel-livewire-ui. The commands will now use these stub files to make UI & auth.

laravel-livewire-ui's People

Contributors

bastinald avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

laravel-livewire-ui's Issues

Video Tutorial

Nice package ... what happened to the video tutorial? Is there addition documentation or demo available?

Make Crud Command index.blade.php directory & mkdir in error

Hello,

I got since the V1 of this package an issue when I create a CRUD. Indeed, the package create a folder index.blade.php, with the blade files inside.

xxx/index.blade.php/index.blade.php
xxx/index.blade.php/read.blade.php
...

Since I updated the package, I have now a blocking error

 ErrorException                                                                                                                                                                                                                   
                                                                                                                                                                                                                                   
 mkdir(): No such file or directory                                                                                                                                                                                                
                                                                                                                                                                                                                                   
 at S:\Devs\xampp\htdocs\www\projects\p4_lv8_my_work\my_work3\vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.php:587  
[...]
2   S:\Devs\xampp\htdocs\www\projects\p4_lv8_my_work\my_work3\vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.php:568                                                                                               
     Illuminate\Filesystem\Filesystem::makeDirectory("S:\Devs\xampp\htdocs\www\projects\p4_lv8_my_work\my_work3\S:\Devs\xampp\htdocs\www\projects\p4_lv8_my_work\my_work3\resources\views/member\users\index.blade.php")

With an echo:

File created: app/Http/Livewire//Member/Users\Index.php                                                                                                                                                                             
create path=app/Http/Livewire//Member/Users\Password.php                                                                                                                                                                            
File created: app/Http/Livewire//Member/Users\Password.php                                                                                                                                                                          
create path=app/Http/Livewire//Member/Users\Read.php                                                                                                                                                                                
File created: app/Http/Livewire//Member/Users\Read.php                                                                                                                                                                              
create path=app/Http/Livewire//Member/Users\Save.php                                                                                                                                                                                
File created: app/Http/Livewire//Member/Users\Save.php                                                                                                                                                                              
create path=S:\Devs\xampp\htdocs\www\projects\p4_lv8_my_work\my_work3\resources\views/member\users\index.blade.php\index.blade.php

-> folder with a file extension + two relative path joined.

With some debugging:

S:\Devs\xampp\htdocs\www\projects\p4_lv8_my_work\my_work3>php artisan make:crud Member\User --force                                                                                                                                 
array:6 [                                                                                                                                                                                                                           
  "componentDir" => "app/Http/Livewire//Member/Users"                                                                                                                                                                               
  "componentParser->relativeClassPath" => "app/Http/Livewire//Member/Users/Index.php"                                                                                                                                               
  "vewDir" => "S:\Devs\xampp\htdocs\www\projects\p4_lv8_my_work\my_work3\resources\views/member\users\index.blade.php"                                                                                                              
  "componentParser>relativeViewPath" => "S:\Devs\xampp\htdocs\www\projects\p4_lv8_my_work\my_work3\resources\views/member\users\index.blade.php"                                                                                    
  'config(livewire.class_namespace)' => "App\Http\Livewire"                                                                                                                                                                                                          
  'config(livewire.view_path)' => "S:\Devs\xampp\htdocs\www\projects\p4_lv8_my_work\my_work3\resources\views"                                                                                                                                                  
]  

It seems that on MakeCrudCommand.php, the componentParser is building the relativeViewPath with an relative path.
path comming from 'view_path' => resource_path('views'),

I fixed the two issues with:

  1. MakeCrudCommand : Cleaning the paths & directory separator of the files, will prevent double index.blade.php folder/files (I am pretty sure we can find a more elegant solution).
    private function cleanPath($path) {
        $path = str_replace(['/', '\\'], DIRECTORY_SEPARATOR, $path);
        return $path;
    }
        $this->componentDir = Str::replaceLast(DIRECTORY_SEPARATOR . 'Index.php', '', $this->cleanPath($this->componentParser->relativeClassPath()));
        $this->viewDir = Str::replaceLast(DIRECTORY_SEPARATOR . 'index.blade.php', '', $this->cleanPath($this->componentParser->relativeViewPath()));
  1. MakeCrudCommand : clean the base_path when we have relative path in the config.
    private function makeStubs()
    {
       [...]
                   $basePath = base_path(str_replace(base_path(), '', $path));
       [...]
    }

Installation throws "Permission Denied" error.

After installation, the site throws an "Persmission denied" error.

file_get_contents(D:\LARAGON\www\laravel-hp\app/Http/Livewire\Auth): failed to open stream: Permission denied

php artisan migrate:auto throws the same error.

Strict Typing?

Hello! Great job, really!

I noticed you have weak typing (and missing docblocks) at all the components available.
I know is there are stubs to modify, but most junior-mids will not go make the code stricter and will just use it as it is.

Do you have any plans to improve the code quality of the package?

Question: Does this work with or Can we change Bootstrap to TailwindCSS?

Hey,

First of all, thank you very much for the excellent package.

I wanted to check if the components can be changed from Bootstrap to TailwindCSS? I understand, this package along with others use Bootstrap. But we are using TailwindCSS and wanted to check with you if there is an option to change Bootstrap to TailwindCSS.?

Thanks again,
Milan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.