PHPackages                             adrianvm/export-entities - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. adrianvm/export-entities

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

adrianvm/export-entities
========================

Export Laravel model constants and enums to JavaScript/TypeScript for seamless backend-frontend sharing.

11PHP

Since Dec 7Pushed 1y ago1 watchersCompare

[ Source](https://github.com/AdrianVictorM/export-entities)[ Packagist](https://packagist.org/packages/adrianvm/export-entities)[ RSS](/packages/adrianvm-export-entities/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Export Entities (Laravel Package)
=================================

[](#export-entities-laravel-package)

Export PHP constants and/or PHP enums to JavaScript/TypeScript for seamless backend-frontend sharing.

Requirements
------------

[](#requirements)

- PHP 8.0 or above (8.1 or above for Enums command to work)
- Laravel 9 or above

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

[](#installation)

```
composer require --dev adrianvm/export-entities
```

Usage
-----

[](#usage)

This package adds two new commands:

### 1. Export constants

[](#1-export-constants)

```
php artisan export:constants
```

### 1.1. Options

[](#11-options)

- `--suffix`: Append a custom suffix (optional, no default).
- `--path`: Models folder path (default: `Models`)
- `output`: The output file path for JavaScript constants (default: `resources/js/constants.js`)
- `--typescript`: Generate TypeScript definitions.

### 1.2. Input Example

[](#12-input-example)

```
...
class Post extends Model
{
  ...

  const STATUS_DRAFT = 'draft';
  const STATUS_PUBLISHED = 'published';
  ...
  const TYPE_PRIVATE = 0;
  const TYPE_PUBLIC = 1;

  ...
}
```

### 1.3. Output Example

[](#13-output-example)

```
export const Post = {
  STATUS_DRAFT: "draft",
  STATUS_PUBLISHED: "published",
  TYPE_PRIVATE: 0,
  TYPE_PUBLIC: 1
};
```

### 2. Export enums

[](#2-export-enums)

```
php artisan export:enums
```

### 2.1. Options

[](#21-options)

- `--suffix`: Append a custom suffix (optional, no default).
- `--path`: Enums folder path (default: `Enums`)
- `output`: The output file path for JavaScript constants (default: `resources/js/enums.js`)
- `--typescript`: Generate TypeScript definitions.

### 2.2.1. Input Example (no type)

[](#221-input-example-no-type)

```
...
enum BurgerCookingStages
{
    case Raw;
    case Medium;
    case WellDone;
    case Congratulations;
}
```

### 2.2.1. Output Example (no type)

[](#221-output-example-no-type)

```
export const Post = {
  Raw: 'raw',
  Medium: 'medium',
  WellDone: 'well_done',
  Congratulations: 'congratulations'
};
```

### 2.2.2. Input Example (string type)

[](#222-input-example-string-type)

```
...
enum Status: string
{
    case DRAFT = 'draft';
    case PUBLISHED = 'published';
    case ARCHIVED = 'archived';
    case DELETED = 'is_deleted';
}
```

### 2.2.2. Output Example (string type)

[](#222-output-example-string-type)

```
export const Status = {
  DRAFT: 'draft',
  PUBLISHED: 'published',
  ARCHIVED: 'archived',
  DELETED: 'is_deleted'
};
```

### 2.2.3. Input Example (int type)

[](#223-input-example-int-type)

```
...
enum Status: int
{
    case DRAFT = 1;
    case PUBLISHED = 2;
    case ARCHIVED = 3;
}
```

### 2.2.3. Output Example (int type)

[](#223-output-example-int-type)

```
export const Status = {
  DRAFT: 1,
  PUBLISHED: 2,
  ARCHIVED: 3
};
```

License
-------

[](#license)

This package is open-source software licensed under the [MIT license](LICENSE.md).

###  Health Score

15

—

LowBetter than 3% of packages

Maintenance31

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity16

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/76232a1b64a2e1632e2adb4f91efb98f5900380fa364d082360f19a7ec94bee7?d=identicon)[adrianvm](/maintainers/adrianvm)

---

Top Contributors

[![AdrianVictorM](https://avatars.githubusercontent.com/u/137402553?v=4)](https://github.com/AdrianVictorM "AdrianVictorM (5 commits)")

### Embed Badge

![Health badge](/badges/adrianvm-export-entities/health.svg)

```
[![Health](https://phpackages.com/badges/adrianvm-export-entities/health.svg)](https://phpackages.com/packages/adrianvm-export-entities)
```

###  Alternatives

[predaddy/predaddy

Common DDD classes and utilities

16826.5k1](/packages/predaddy-predaddy)[windinternet/randomdata

TYPO3 extensions to generate new random data or replace existing data with random data

141.4k](/packages/windinternet-randomdata)

PHPackages © 2026

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