PHPackages                             ikechukwukalu/magicmake - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. ikechukwukalu/magicmake

ActiveLibrary[Framework](/categories/framework)

ikechukwukalu/magicmake
=======================

A scaffolding package for an opinionated Laravel coding style.

v3.0.0(1y ago)06.3k1[4 PRs](https://github.com/ikechukwukalu/magicmake/pulls)Apache-2.0PHPPHP &gt;=7.3CI passing

Since Feb 26Pushed 1y ago1 watchersCompare

[ Source](https://github.com/ikechukwukalu/magicmake)[ Packagist](https://packagist.org/packages/ikechukwukalu/magicmake)[ RSS](/packages/ikechukwukalu-magicmake/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (8)Dependencies (26)Versions (13)Used By (0)

MAGIC MAKE
==========

[](#magic-make)

[![Latest Version on Packagist](https://camo.githubusercontent.com/efb683c3471835d01e1a48c027873c3bf0e5d3f2546efeaeade193d33f87bd8a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f696b656368756b77756b616c752f6d616769636d616b653f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ikechukwukalu/magicmake)[![Quality Score](https://camo.githubusercontent.com/424f8bc46ceee6116719c51e4fd2a26801d3030425c78379eadd8625e5d8b63d/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f7175616c6974792f672f696b656368756b77756b616c752f6d616769636d616b652f6d61696e3f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/ikechukwukalu/magicmake/)[![Code Quality](https://camo.githubusercontent.com/756907407a78eb23bfc94c150b8c53267178591e9592e9a3bab093008180e92e/68747470733a2f2f696d672e736869656c64732e696f2f636f6465666163746f722f67726164652f6769746875622f696b656368756b77756b616c752f6d616769636d616b653f7374796c653d666c61742d737175617265)](https://www.codefactor.io/repository/github/ikechukwukalu/magicmake)

[![Github Workflow Status](https://camo.githubusercontent.com/490c19e725a8879ff710e763b6e123385dd4377c8457ecfb961fc060568a657f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f696b656368756b77756b616c752f6d616769636d616b652f6d616769636d616b652e796d6c3f6272616e63683d6d61696e267374796c653d666c61742d737175617265)](https://github.com/ikechukwukalu/magicmake/actions/workflows/magicmake.yml)[![Total Downloads](https://camo.githubusercontent.com/71f84e67c7439731987615227014e6ee69c325769d99ad363922dc01bdb1ca35/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f696b656368756b77756b616c752f6d616769636d616b653f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ikechukwukalu/magicmake)[![Licence](https://camo.githubusercontent.com/681f06e5d90338546fd6c1473a0f3ccc5f35606522cc9e973e82571d8e9fd2f1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f696b656368756b77756b616c752f6d616769636d616b653f7374796c653d666c61742d737175617265)](https://github.com/ikechukwukalu/magicmake/blob/main/LICENSE.md)

A Laravel scaffolding package for an opinionated Laravel coding style.

REQUIREMENTS
------------

[](#requirements)

The published v3.0.0 package declares:

- PHP 7.3 or newer.
- Laravel 8 through Laravel 12 component constraints.

These values describe the published Composer constraints. They do not imply that every PHP/Laravel combination has been verified by a version matrix. Review the constraints of the exact package version selected by Composer.

SOURCE AND RELEASE POLICY
-------------------------

[](#source-and-release-policy)

Development, tests, feature branches, and pull requests are maintained in the private `ikechukwukalu/magic-make` development source repository. This public repository is the release destination for reviewed package versions.

Documentation in this repository describes published behavior. Planned generation profiles, modular target paths and namespaces, safer initialization, conflict preflight, and explicit response modes remain unreleased until a separately authorized package synchronization and release.

STEPS TO INSTALL
----------------

[](#steps-to-install)

```
composer require ikechukwukalu/magicmake
```

SET UP LARAVEL
--------------

[](#set-up-laravel)

```
php artisan install:api
```

INIT CLASSES
------------

[](#init-classes)

To initialize prepared classes for a new laravel app. This would only run when `env('APP_ENV') === local` and `env(MAGIC_INIT_LOCK) === false`.

```
php artisan magic:init
```

MODEL BASED CLASSES
-------------------

[](#model-based-classes)

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
```

### Note

[](#note)

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);
}
```

FINISHING SETUP
---------------

[](#finishing-setup)

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 `bootstrap/providers.php`.

```
/*
    * Package Service Providers...
    */
App\Providers\EventServiceProvider::class,
App\Providers\MacroServiceProvider::class,
App\Providers\RepositoryServiceProvider::class,
```

Add to `bootstrap/app.php`

```
    ->withMiddleware(function (Middleware $middleware) {
        //
        $middleware->alias([
            'check.email.verification' => \App\Http\Middleware\CheckEmailVerification::class,
            'check.user.is.admin' => \App\Http\Middleware\CheckIfUserIsAdmin::class,
            'check.phone.verification' => \App\Http\Middleware\CheckPhoneVerification::class,
        ]);
    })
```

Add to `vite.config.js`

```
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/sass/app.scss',
                'resources/js/app.js',
                'resources/css/app.css',
            ],
            refresh: true,
        }),
    ],
});
```

### Project setup

[](#project-setup)

```
php artisan ui bootstrap
npm install
composer install
php artisan migrate --seed
```

### Run development server

[](#run-development-server)

```
npm run build
php artisan serve
php artisan test
```

NOTE
----

[](#note-1)

### Publish notification blade

[](#publish-notification-blade)

Add the following line above this code line `@if ($emailData->action)` in the `notification.blade.php` file:

```
@if (isset($emailData->highlightText))
@component('mail::panel', ['style' => 'background-color: #f0f8ff; border-radius: 0.5rem; padding: 16px;text-align: center'])

{{ $emailData->highlightText }}

@endcomponent
@endif
```

### App notification helpers

[](#app-notification-helpers)

```
$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()));
```

### Advanced search and table filter helpers

[](#advanced-search-and-table-filter-helpers)

Sample usage:

```
public function getPaginated(int $pageSize): LengthAwarePaginator
{
    /**
     * Search a parent table via the user_id foreign key on the user_deliveries table
     */
    $search = advancedSearch('user', 'user_id', ['unit_number', 'name', 'email', 'first_name', 'last_name', 'middle_name']);

    /**
     * Search a child table via the user_delivery_id foreign key on the user_delivery_items table
     */
    $search2 = advancedSearch('userDeliveryItems', 'user_delivery_id', ['tracking_number', 'name', 'delivery_vendor'], 'user_delivery_items');

    return UserDelivery::with(['user', 'userDeliveryItems'])
                ->search($search)
                ->search($search2)
                ->orWhere(function($query) {
                    $query->search('ref_number');
                })
                ->order()
                ->date()
                ->filter($this->whiteList)
                ->paginate(pageSize($pageSize));
}
```

LICENSE
-------

[](#license)

The MM package is a software licensed under the [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0).

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance44

Moderate activity, may be stable

Popularity25

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 93.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~66 days

Recently: every ~41 days

Total

8

Last Release

441d ago

Major Versions

v1.0.1 → v2.0.02024-12-15

v2.0.4 → v3.0.02025-06-02

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/160470701?v=4)[ikay007](/maintainers/ikay007)[@Ikay007](https://github.com/Ikay007)

---

Top Contributors

[![monitecture](https://avatars.githubusercontent.com/u/100952206?v=4)](https://github.com/monitecture "monitecture (31 commits)")[![ikechukwukalu](https://avatars.githubusercontent.com/u/60310041?v=4)](https://github.com/ikechukwukalu "ikechukwukalu (1 commits)")[![nowodev](https://avatars.githubusercontent.com/u/43044740?v=4)](https://github.com/nowodev "nowodev (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ikechukwukalu-magicmake/health.svg)

```
[![Health](https://phpackages.com/badges/ikechukwukalu-magicmake/health.svg)](https://phpackages.com/packages/ikechukwukalu-magicmake)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.8k2.5k](/packages/unopim-unopim)[bagisto/bagisto

Bagisto Laravel E-Commerce

28.0k175.2k9](/packages/bagisto-bagisto)[laravel/sail

Docker files for running a basic Laravel application.

1.9k212.4M1.5k](/packages/laravel-sail)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1239.7k25](/packages/fleetbase-core-api)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

265.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
