PHPackages                             evotic/make-extended - 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. [CLI &amp; Console](/categories/cli)
4. /
5. evotic/make-extended

ActiveLibrary[CLI &amp; Console](/categories/cli)

evotic/make-extended
====================

An extension to Laravel artisan make commands

1.1.0(1y ago)1207MITPHPPHP ^8.2

Since Sep 6Pushed 1y ago1 watchersCompare

[ Source](https://github.com/evoticio/make-extended)[ Packagist](https://packagist.org/packages/evotic/make-extended)[ RSS](/packages/evotic-make-extended/feed)WikiDiscussions production Synced 1mo ago

READMEChangelog (2)Dependencies (2)Versions (5)Used By (0)

Laravel Make Extended
=====================

[](#laravel-make-extended)

The **Laravel Make Extended** package provides additional `make:` commands that simplify common development tasks in Laravel, such as creating actions, DTOs (Data Transfer Objects), repositories, services, and more. This package aims to fill gaps in Laravel's built-in Artisan commands, offering enhanced tools to streamline development.

Developed to boost productivity and maintain code organization, these commands provide structure and separation of concerns for complex Laravel applications.

Key Features
------------

[](#key-features)

- **Enhanced `make:` commands**: Adds useful Artisan commands like `make:action`, `make:dto`, `make:repository`, and `make:service`.
- **Separation of concerns**: Promotes clean architecture patterns like CQRS and DDD (Domain-Driven Design) by offering DTOs, actions, and repositories.
- **Extendable**: Easily customizable stubs for generated files. See the [Customizing Stubs](#customizing-stubs) section for more information.
- **Seamless integration**: Works seamlessly with existing Laravel projects from version 9.x onwards.

Installation
------------

[](#installation)

To install the **Laravel Make Extended** package, follow these steps:

1. **Install via Composer**:

    Run the following command to install the package via Composer:

    ```
    composer require evotic/make-extended
    ```
2. **Publish Configuration (Optional)**:

    If you want to customize any aspect of the package, you can publish the configuration files:

    ```
    php artisan vendor:publish --tag=make-extended-config
    ```

Usage
-----

[](#usage)

Once the package is installed, you can start using the new `make:` commands in your Laravel project.

For example, to create a new action class, simply run:

`php artisan make:action YourAction`

Each generated file will be placed in the appropriate folder, following Laravel’s naming conventions.

---

Available Commands
------------------

[](#available-commands)

This package provides the following `make:` commands:

### `make:action`

[](#makeaction)

Creates a single-action class, which can be used to organize your business logic and simplify controllers. Typically used in a **CQRS** pattern.

#### Example:

[](#example)

`php artisan make:action ProcessOrderAction`

This generates the following file:

```
// app/Actions/ProcessOrderAction.php

namespace App\Actions;

class ProcessOrderAction
{
    public function __invoke()
    {
        //
    }
}
```

#### Use Case:

[](#use-case)

Single-action classes can be useful for organizing logic that```s reused across different parts of your application (such as processing an order, user registration, etc.).

### `make:dto`

[](#makedto)

Generates a **Data Transfer Object** (DTO) class. DTOs are used to encapsulate data that is passed between layers of the application.

#### Example:

[](#example-1)

`php artisan make:dto UserDto`

This generates the following file:

```
// app/DTOs/UserDto.php

namespace App\DTOs;

class UserDto
{
   public function __construct(
    //
   ) {}

    // Add your methods here
}
```

#### Use Case:

[](#use-case-1)

DTOs are used to carry data between different layers of the application (e.g., from a controller to a service) while ensuring that the data structure is consistent and immutable.

### `make:repository`

[](#makerepository)

Creates a **Repository** class, useful for abstracting data access logic. Repositories are often used in service layers to handle database operations, ensuring that the domain logic is decoupled from the data source.

#### Example:

[](#example-2)

`php artisan make:repository UserRepository`

This generates the following file:

```
// app/Repositories/UserRepository.php

namespace App\Repositories;

class UserRepository
{
    public function all()
    {
    // Fetch all users
    }

    public function find($id)
    {
        // Find a user by ID
    }

    public function create(array $data)
    {
        // Create a new user
    }

    public function update($id, array $data)
    {
        // Update an existing user
    }

    public function delete($id)
    {
        // Delete a user
    }
}
```

#### Use Case:

[](#use-case-2)

Repositories provide an abstraction layer between the business logic and the database, allowing developers to swap out the data source without affecting the rest of the application.

### `make:service`

[](#makeservice)

Creates a **Service** class. Services contain the business logic of the application and typically call repositories or other services to perform their operations.

#### Example:

[](#example-3)

`php artisan make:service PaymentService`

This generates the following file:

```
// app/Services/PaymentService.php

namespace App\Services;

class PaymentService
{
    public function __construct()
    {
        //
    }

    // Add your methods here
}
```

#### Use Case:

[](#use-case-3)

Service classes are useful for isolating business logic, making it easier to maintain, test, and reuse across different parts of the application.

---

Customizing Stubs
-----------------

[](#customizing-stubs)

If you need to customize the stubs generated by the `make:` commands, you can publish the stubs to your Laravel project by running:

```
php artisan vendor:publish --tag=make-extended-stubs
```

This will publish the stubs to the `resources/stubs/make-extended` directory in your Laravel application. You can then modify these stubs as needed, and the package will use the customized stubs instead of the default ones.

### Example

[](#example-4)

To customize the `Service.stub`, you would find the file at: `resources/stubs/make-extended/Service.stub`.

---

Contributing
------------

[](#contributing)

If you'd like to contribute to this project, feel free to submit pull requests or open issues on GitHub. Contributions, suggestions, and improvements are always welcome!

Important Links
---------------

[](#important-links)

- evotic Website: [evotic.io](https://evotic.io)
- Laravel Documentation: [Laravel Docs](https://laravel.com/docs)
- CQRS Pattern: [CQRS Documentation](https://martinfowler.com/bliki/CQRS.html)
- Data Transfer Objects (DTOs): [DTO Pattern](https://en.wikipedia.org/wiki/Data_transfer_object)

License
-------

[](#license)

This package is licensed under the MIT License. See the [LICENSE](LICENSE.md) file for more information.

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~0 days

Total

4

Last Release

619d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3d198b189e41c37d56a9c81a92240a1884114ddf6de986ab5417c08c4dd805c3?d=identicon)[evotic](/maintainers/evotic)

---

Top Contributors

[![leonhausdorf](https://avatars.githubusercontent.com/u/59312981?v=4)](https://github.com/leonhausdorf "leonhausdorf (6 commits)")

---

Tags

artisancommandslaravelstubs

### Embed Badge

![Health badge](/badges/evotic-make-extended/health.svg)

```
[![Health](https://phpackages.com/badges/evotic-make-extended/health.svg)](https://phpackages.com/packages/evotic-make-extended)
```

###  Alternatives

[nunomaduro/laravel-console-menu

Laravel Console Menu is an output method for your Laravel/Laravel Zero commands.

815412.0k48](/packages/nunomaduro-laravel-console-menu)[fumeapp/modeltyper

Generate TypeScript interfaces from Laravel Models

196277.9k](/packages/fumeapp-modeltyper)[aedart/athenaeum

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

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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