PHPackages                             anas/easy-dev - 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. [Testing &amp; Quality](/categories/testing)
4. /
5. anas/easy-dev

ActiveLaravel-package[Testing &amp; Quality](/categories/testing)

anas/easy-dev
=============

Generate production-style Laravel feature structure from one Artisan command: CRUD, APIs, services, repositories, tests, OpenAPI docs, modules, and AI-ready project context.

v3.1.1(4w ago)143891MITPHPPHP ^8.1CI passing

Since Apr 17Pushed 4w ago1 watchersCompare

[ Source](https://github.com/anasnashat/laravel-easy-dev)[ Packagist](https://packagist.org/packages/anas/easy-dev)[ Docs](https://github.com/anasnashat/laravel-easy-dev)[ GitHub Sponsors](https://github.com/sponsors/anasnashat)[ RSS](/packages/anas-easy-dev/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (21)Versions (11)Used By (0)

Laravel Easy Dev
================

[](#laravel-easy-dev)

Generate production-style Laravel feature structure from one Artisan command.

Laravel Easy Dev helps Laravel developers reduce repetitive setup around every model or feature by generating CRUD, APIs, Form Requests, Resources, optional Services and Repositories, Policies, DTOs, Tests, OpenAPI docs, Modules, frontend starter stubs, and AI-ready project context.

[![Latest Version on Packagist](https://camo.githubusercontent.com/c0dd32f1eff1c570ce1d2f0766020c5de37bac20afac66c7daaf2d7182af8d5e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f616e61732f656173792d6465762e737667)](https://packagist.org/packages/anas/easy-dev)[![Total Downloads](https://camo.githubusercontent.com/419f687e6df79a63e02a6fb595ec161c22dd7e97b98a5cf918b05786e73e2f54/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f616e61732f656173792d6465762e737667)](https://packagist.org/packages/anas/easy-dev)[![PHP Version](https://camo.githubusercontent.com/3f49c8180df4b4bb3756e067d997cb07e408d1f14392f6c56e67e991f235f9a0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f616e61732f656173792d6465762e737667)](https://packagist.org/packages/anas/easy-dev)[![License](https://camo.githubusercontent.com/274649e2bde20e0c98c4bd5ed699e30d0aead1b92c2efeba86fb2871256a6eb1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f616e61732f656173792d6465762e737667)](LICENSE.md)[![Tests](https://github.com/anasnashat/laravel-easy-dev/actions/workflows/tests.yml/badge.svg)](https://github.com/anasnashat/laravel-easy-dev/actions/workflows/tests.yml)[![Telegram](https://camo.githubusercontent.com/cab468198e380278c483c50f27f7e636256f86c9f483e3298050ecb69d7c8120/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f54656c656772616d2d436f6d6d756e6974792d626c75653f6c6f676f3d74656c656772616d)](https://t.me/laraveleasydev)

```
composer require anas/easy-dev:^3.1 --dev

php artisan easy-dev:crud Product --api --with-repository --with-service --tests --swagger
```

> Stable release: v3.1.1

Stop Repeating Laravel Boilerplate
----------------------------------

[](#stop-repeating-laravel-boilerplate)

Every time you start a new Laravel feature, you often repeat the same setup:

- Controller
- Form Requests
- API Resource
- Routes
- Service
- Repository
- Policy
- DTO
- Tests
- Swagger / OpenAPI docs

Laravel Easy Dev helps you generate that structure from one Artisan command, so you can focus on the actual business logic.

Instead of spending 30 to 90 minutes wiring the same structure for every model, run one Artisan command and start from a consistent, team-ready architecture.

Demo
----

[](#demo)

### CRUD in seconds

[](#crud-in-seconds)

[![Laravel Easy Dev quick CRUD demo](docs/assets/gifs/quick-crud.gif)](docs/assets/gifs/quick-crud.gif)

### Module and architecture scaffolding

[](#module-and-architecture-scaffolding)

[![Laravel Easy Dev module architecture demo](docs/assets/gifs/architecture-module.gif)](docs/assets/gifs/architecture-module.gif)

### AI project analysis

[](#ai-project-analysis)

[![Laravel Easy Dev AI analysis demo](docs/assets/gifs/ai-analyze.gif)](docs/assets/gifs/ai-analyze.gif)

AI Guide
--------

[](#ai-guide)

Laravel Easy Dev includes AI-friendly commands for coding agents:

```
php artisan easy-dev:ai-context --pretty
php artisan easy-dev:snapshot --ai
php artisan easy-dev:analyze --json
```

See [docs/AI\_GUIDE.md](docs/AI_GUIDE.md) for token-saving workflows, safe generation rules, and prompt examples for Codex, Cursor, Claude, and ChatGPT.

Quick Start
-----------

[](#quick-start)

### 1. Install

[](#1-install)

```
composer require anas/easy-dev:^3.1 --dev
```

Laravel package discovery registers the service provider automatically.

### 2. Generate a Feature

[](#2-generate-a-feature)

```
php artisan easy-dev:crud Product --api --with-repository --with-service --tests --swagger
```

### 3. Check Routes

[](#3-check-routes)

```
php artisan route:list --path=products
```

### 4. Run Tests

[](#4-run-tests)

```
php artisan test
```

Publish the config when you want to customize paths, defaults, routes, validation rules, or module settings:

```
php artisan vendor:publish --tag=easy-dev-config
```

Publish stubs when you want generated code to match your team's exact style:

```
php artisan easy-dev:publish-stubs
```

Published stubs are placed in:

```
resources/stubs/vendor/easy-dev/

```

Before / After
--------------

[](#before--after)

### Before

[](#before)

For every model or feature, you may manually create:

- Controller
- Store request
- Update request
- API resource
- Routes
- Service class
- Repository class
- Policy
- DTO
- Tests
- Swagger docs

### After

[](#after)

```
php artisan easy-dev:crud Product --api --with-repository --with-service --tests --swagger
```

One command gives you a clean starting point that you can customize.

Example Generated Structure
---------------------------

[](#example-generated-structure)

```
app/
  Http/
    Controllers/
      Api/
        ProductApiController.php
    Requests/
      StoreProductRequest.php
      UpdateProductRequest.php
    Resources/
      ProductResource.php
  Services/
    ProductService.php
  Repositories/
    ProductRepository.php
  Policies/
    ProductPolicy.php
  DTOs/
    ProductData.php

routes/
  api.php

tests/
  Feature/
    ProductApiTest.php

storage/
  app/
    easy-dev/
      openapi.json

```

What It Generates
-----------------

[](#what-it-generates)

Laravel Easy Dev can generate:

- Web CRUD controllers and routes
- API controllers, resources, requests, and routes
- Optional Service layer
- Optional Repository layer
- Policies
- DTOs
- Observers
- Filters
- Enums
- Feature and unit tests
- OpenAPI / Swagger docs
- Clean Architecture and DDD-style modules
- Vue, React, Inertia, and Livewire starter stubs
- AI-friendly JSON commands for project context and analysis

Common Recipes
--------------

[](#common-recipes)

### API CRUD Only

[](#api-crud-only)

```
php artisan easy-dev:crud Product --api
```

### API CRUD With Tests

[](#api-crud-with-tests)

```
php artisan easy-dev:crud Product --api --tests
```

### API CRUD With Service Layer

[](#api-crud-with-service-layer)

```
php artisan easy-dev:crud Product --api --with-service --tests
```

### Full Structure

[](#full-structure)

```
php artisan easy-dev:crud Product --api --with-repository --with-service --with-policy --with-dto --tests --swagger
```

### Module Structure

[](#module-structure)

```
php artisan easy-dev:crud Product --module=Catalog --architecture=clean --with-service --with-repository
```

### Generate OpenAPI Docs

[](#generate-openapi-docs)

```
php artisan easy-dev:swagger
```

### Export AI Context

[](#export-ai-context)

```
php artisan easy-dev:ai-context --pretty
```

Command Cheatsheet
------------------

[](#command-cheatsheet)

CommandUse It For`easy-dev:crud`Generate CRUD and optional layers`easy-dev:make`Interactive CRUD wizard`easy-dev:test`Generate tests`easy-dev:swagger`Generate OpenAPI docs`easy-dev:analyze`Analyze missing layers`easy-dev:ai-context`Export AI-ready project context`easy-dev:snapshot`Generate project snapshot`easy-dev:publish-stubs`Publish and customize stubsWhen Should You Use This?
-------------------------

[](#when-should-you-use-this)

Laravel Easy Dev is useful when you are building:

- APIs
- Admin panels
- SaaS dashboards
- CRUD-heavy applications
- Modular Laravel applications
- Internal tools
- Teams that want consistent generated structure
- Projects where you want tests and documentation from the start

It is not meant to replace Laravel or hide the framework.

It gives you a clean starting point that you can customize, edit, or delete.

Philosophy
----------

[](#philosophy)

Laravel Easy Dev does not force one architecture.

You can generate simple Laravel CRUD, or enable optional layers like:

- Services
- Repositories
- DTOs
- Policies
- Observers
- Tests
- Swagger docs
- Modules

Use only what fits your project.

The generated code is meant to be:

- Readable
- Editable
- Customizable
- Easy to delete
- Laravel-friendly

Generated Files
---------------

[](#generated-files)

Basic CRUD generation creates:

```
app/
  Models/Product.php
  Http/Controllers/ProductController.php
  Http/Controllers/Api/ProductApiController.php
  Http/Requests/StoreProductRequest.php
  Http/Requests/UpdateProductRequest.php
  Http/Resources/ProductResource.php
  Http/Resources/ProductCollection.php
database/
  migrations/xxxx_xx_xx_xxxxxx_create_products_table.php
routes/
  web.php
  api.php

```

Optional flags add:

FlagGenerated output`--with-repository``app/Repositories/ProductRepository.php`, `app/Repositories/Contracts/ProductRepositoryInterface.php``--with-service``app/Services/ProductService.php`, `app/Services/Contracts/ProductServiceInterface.php``--with-policy``app/Policies/ProductPolicy.php``--with-dto``app/DTOs/ProductData.php``--with-observer``app/Observers/ProductObserver.php``--register-observer`Adds `#[ObservedBy]` registration to the model`--tests``tests/Feature/ProductControllerTest.php`, unit test shells`--swagger``storage/app/easy-dev/openapi.json``--vue``resources/js/components/ProductsIndex.vue``--react``resources/js/components/ProductsIndex.jsx``--inertia``resources/js/Pages/Products/Index.vue``--livewire`Livewire class and Blade viewFeatures
--------

[](#features)

### API-First Mode

[](#api-first-mode)

Use `--api` or `--api-only` to skip web controllers and focus on API resources.

```
php artisan easy-dev:crud Product --api --with-service --tests --swagger
```

### Optional Repository and Service Layers

[](#optional-repository-and-service-layers)

Repository and Service layers are optional. Laravel Easy Dev does not force them. Enable them only when they match your project or team structure.

Generate clean separation between HTTP, business logic, and persistence:

```
php artisan easy-dev:crud Order --with-repository --with-service
```

### Architecture Presets

[](#architecture-presets)

Use standard Laravel structure:

```
php artisan easy-dev:crud Invoice --architecture=laravel
```

Use Clean Architecture layout inside a module:

```
php artisan easy-dev:crud Invoice --module=Billing --architecture=clean --with-repository --with-service
```

Use DDD-style module layout:

```
php artisan easy-dev:crud Payment --module=Billing --architecture=ddd --with-repository --with-service
```

### Modules

[](#modules)

Place generated files under a domain module:

```
php artisan easy-dev:crud Order --module=Sales --with-repository --with-service
```

Example module output:

```
app/Modules/Sales/
  Models/Order.php
  Http/Controllers/OrderController.php
  Http/Controllers/Api/OrderApiController.php
  Http/Requests/StoreOrderRequest.php
  Http/Requests/UpdateOrderRequest.php
  Http/Resources/OrderResource.php
  Repositories/OrderRepository.php
  Repositories/Contracts/OrderRepositoryInterface.php
  Services/OrderService.php
  Services/Contracts/OrderServiceInterface.php

```

### Test Generation

[](#test-generation)

Generate starter tests for a model:

```
php artisan easy-dev:test Product
```

Generate API, service, and repository test shells:

```
php artisan easy-dev:test Product --api --feature --unit --service --repository
```

### OpenAPI / Swagger

[](#openapi--swagger)

Generate a basic OpenAPI file:

```
php artisan easy-dev:swagger Product
```

Generate YAML:

```
php artisan easy-dev:swagger Product --format=yaml
```

### Project Analysis

[](#project-analysis)

Analyze project structure and missing layers:

```
php artisan easy-dev:analyze
```

Machine-readable output for AI tools:

```
php artisan easy-dev:analyze --json
```

Apply conservative safe fixes where available:

```
php artisan easy-dev:analyze --fix
```

### Relationship Management

[](#relationship-management)

Auto-detect relationships from database schema and migrations:

```
php artisan easy-dev:sync-relations --all
```

Add a relationship manually:

```
php artisan easy-dev:add-relation Post belongsTo User
```

### Individual Generators

[](#individual-generators)

Use each generator independently:

```
php artisan easy-dev:repository Product
php artisan easy-dev:api-resource Product
php artisan easy-dev:policy Product
php artisan easy-dev:dto Product
php artisan easy-dev:observer Product --register
php artisan easy-dev:filter Product
php artisan easy-dev:enum OrderStatus --values=pending,paid,cancelled
```

### Frontend Starters

[](#frontend-starters)

Generate backend plus starter frontend files:

```
php artisan easy-dev:crud Product --inertia
php artisan easy-dev:crud Product --vue
php artisan easy-dev:crud Product --react
php artisan easy-dev:crud Product --livewire
```

These files are intentionally starter templates. They give you a consistent first screen to customize for your actual UI stack.

### AI Commands

[](#ai-commands)

Give AI coding agents structured project context:

```
php artisan easy-dev:ai-context --pretty
php artisan easy-dev:snapshot --ai
php artisan easy-dev:info Product --ai
```

All major generators support `--ai` for quiet JSON output:

```
php artisan easy-dev:crud Product --api --ai
```

Customization
-------------

[](#customization)

Publish stubs:

```
php artisan easy-dev:publish-stubs
```

List available stubs:

```
php artisan easy-dev:publish-stubs --list
```

Publish only selected stubs:

```
php artisan easy-dev:publish-stubs --only=controller.api,service.enhanced
```

Overwrite existing published stubs:

```
php artisan easy-dev:publish-stubs --force
```

Stub resolution order:

1. CLI `--stub=...`
2. published project stubs
3. `config/easy-dev.php` stub mapping
4. package default stubs

Configuration
-------------

[](#configuration)

Publish config:

```
php artisan vendor:publish --tag=easy-dev-config
```

Common settings:

- output paths for models, controllers, resources, repositories, services, policies, DTOs, observers, enums, tests, factories, and migrations
- route middleware and route prefixes
- default generator options
- validation rule mapping
- relationship detection behavior
- module root path and module namespace structure

Command Reference
-----------------

[](#command-reference)

Primary commands:

CommandPurpose`easy-dev:crud`Generate CRUD and optional architecture layers`easy-dev:make`Interactive CRUD wizard`easy-dev:dream`Generate from natural language`easy-dev:test`Generate feature and unit test shells`easy-dev:swagger`Generate OpenAPI docs`easy-dev:analyze`Analyze missing layers and maintainability risks`easy-dev:ai-context`Export AI-ready project context`easy-dev:snapshot`Snapshot models, schemas, and relationships`easy-dev:info`Inspect one model`easy-dev:publish-stubs`Publish customizable stubsPattern generators:

CommandPurpose`easy-dev:repository`Repository and interface`easy-dev:api-resource`API resource and collection`easy-dev:policy`Authorization policy`easy-dev:dto`Data Transfer Object`easy-dev:observer`Model observer`easy-dev:filter`Query filter`easy-dev:enum`PHP enum`easy-dev:sync-relations`Detect and sync model relationships`easy-dev:add-relation`Add one relationship manuallyRequirements
------------

[](#requirements)

- PHP 8.1+
- Laravel 9, 10, 11, 12, or 13
- MySQL, PostgreSQL, or SQLite for schema analysis features

Testing
-------

[](#testing)

Run the package tests:

```
cd packages/laravel-easy-dev
composer test
```

Current local verification:

```
97 tests, 396 assertions

```

Roadmap
-------

[](#roadmap)

Possible future improvements:

- Better OpenAPI schema generation from migrations
- More Pest testing support
- Filament resource generation
- Better frontend starter templates
- More module architecture presets
- More AI-friendly project analysis commands
- More customization options for generated stubs

Community
---------

[](#community)

Laravel Easy Dev is actively maintained and continuously improving.

Stay updated with:

- New releases
- Changelog updates
- Roadmap announcements
- Demo videos
- Laravel Easy Dev tips and examples

### Telegram Community

[](#telegram-community)

### GitHub Discussions

[](#github-discussions)

### GitHub Issues

[](#github-issues)

Feedback, ideas, bug reports, and feature requests are always welcome.

See [docs/COMMUNITY.md](docs/COMMUNITY.md) for the community welcome message.

Feedback
--------

[](#feedback)

Laravel Easy Dev is actively improving.

If you use it in a project, feedback is welcome:

- Are the generated defaults useful?
- What structure should be improved?
- What Laravel workflows should be supported next?

Open an issue or discussion on GitHub.

Release Status
--------------

[](#release-status)

Laravel Easy Dev v3.1.1 is stable and ready for Laravel project use. Compatibility is verified across Laravel 9, 10, 11, 12, and 13, with GitHub Actions coverage for PHP 8.1, 8.2, 8.3, and 8.4 where supported.

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

[](#contributing)

Issues, discussions, pull requests, and real project feedback are welcome.

License
-------

[](#license)

The MIT License. See [LICENSE.md](LICENSE.md) for details.

Credits
-------

[](#credits)

- [Anas Nashaat](https://github.com/anasnashat)

###  Health Score

48

↑

FairBetter than 93% of packages

Maintenance94

Actively maintained with recent releases

Popularity25

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity53

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 ~51 days

Recently: every ~0 days

Total

9

Last Release

29d ago

Major Versions

v1.0.1 → 2.0.02025-08-20

v2.1.1 → v3.1.0-rc12026-06-03

PHP version history (2 changes)v1.0.0PHP &gt;=8.0

2.0.0PHP ^8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/72121781?v=4)[anas nashat](/maintainers/anasnashat)[@anasnashat](https://github.com/anasnashat)

---

Top Contributors

[![anasnashat](https://avatars.githubusercontent.com/u/72121781?v=4)](https://github.com/anasnashat "anasnashat (51 commits)")

---

Tags

testinglaravelscaffoldingswaggeropenapiaigeneratorartisanlaravel-packageservicecrudrepositorydddRelationshipsclean architecturedeveloper-toolscomposer-package

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/anas-easy-dev/health.svg)

```
[![Health](https://phpackages.com/badges/anas-easy-dev/health.svg)](https://phpackages.com/packages/anas-easy-dev)
```

###  Alternatives

[laravel/ai

The official AI SDK for Laravel.

1.0k3.2M194](/packages/laravel-ai)[illuminate/queue

The Illuminate Queue package.

21332.6M1.6k](/packages/illuminate-queue)[larastan/larastan

Larastan - Discover bugs in your code without running it. A phpstan/phpstan extension for Laravel

6.5k55.4M8.4k](/packages/larastan-larastan)[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9762.4M131](/packages/roots-acorn)[api-platform/laravel

API Platform support for Laravel

58171.5k14](/packages/api-platform-laravel)

PHPackages © 2026

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