A Laravel scaffolding package for an opinionated Laravel coding style.
- PHP 7.3+
- Laravel 8+
composer require ikechukwukalu/magicmake
To initialize prepared classes for a new laravel app.
php artisan magic:init
This would only run when env('APP_ENV') === local
and env(MAGIC_INIT_LOCK) === false
.
To generate all model based prepared classes.
php artisan magic:model UserKyc
To generate individual model based prepared classes.
php artisan magic:contract UserKyc --variable=userKyc --underscore=user_kyc
php artisan magic:repository UserKyc --variable=userKyc --underscore=user_kyc
php artisan magic:service UserKyc --variable=userKyc --underscore=user_kyc
php artisan magic:controller UserKyc --variable=userKyc --underscore=user_kyc
php artisan magic:createRequest UserKyc --variable=userKyc --underscore=user_kyc
php artisan magic:updateRequest UserKyc --variable=userKyc --underscore=user_kyc
php artisan magic:deleteRequest UserKyc --variable=userKyc --underscore=user_kyc
php artisan magic:readRequest UserKyc --variable=userKyc --underscore=user_kyc
php artisan magic:api UserKyc --variable=userKyc --underscore=user_kyc
php artisan magic:test UserKyc --variable=userKyc --underscore=user_kyc
php artisan magic:factory UserKyc --variable=userKyc --underscore=user_kyc
Add this to config/api.php
.
'paginate' => [
...
'user_kyc' => [
'pageSize' => 10,
],
],
Add this to app/Providers/RepositoryServiceProvider.php
.
use App\Contracts\UserKycRepositoryInterface;
use App\Repositories\UserKycRepository;
public function register(): void
{
...
$this->app->bind(UserKycRepositoryInterface::class, UserKycRepository::class);
}
If you did run php artisan magic:init
.
Add to the composer.json
file.
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
},
"files": [
"app/Http/Helpers.php"
]
},
After that run:
composer dump-autoload
Add to the config/app.php
.
/*
* Package Service Providers...
*/
App\Providers\MacroServiceProvider::class,
App\Providers\RepositoryServiceProvider::class,
Add to app/Http/Kernel.php
in protected $middlewareAliases
protected $middlewareAliases = [
....
'check.email.verification' => \App\Http\Middleware\CheckEmailVerification::class,
]
php artisan ui bootstrap
npm install
composer install
php artisan migrate --seed
npm run build
php artisan serve
php artisan test
$userNotificationData = new UserNotificationData($user->id, $title, $text);
$user->notify(new DatabaseNotification($userNotificationData->toObject()));
$emailData = new EmailData(subject: $title, lines: [$text], from: env('MAIL_FROM_ADDRESS'),
remark: null, action: false, action_text: null,
action_url: null, attachements: null);
$user->notify(new EmailNotification($emailData->toObject()));
$smsData = new SmsData($user->name, $text);
$user->notify(new SmsNotification($smsData->toObject()));
The MM package is a software licensed under the Apache 2.0 license.