PHPackages                             2rius/dart-transformer - 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. 2rius/dart-transformer

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

2rius/dart-transformer
======================

Laravel package for converting PHP classes and types to Dart equivalents

0.1.2(2mo ago)025[2 PRs](https://github.com/2rius/dart-transformer/pulls)MITPHPPHP ^8.3CI passing

Since Aug 12Pushed 1mo agoCompare

[ Source](https://github.com/2rius/dart-transformer)[ Packagist](https://packagist.org/packages/2rius/dart-transformer)[ Docs](https://github.com/2rius/dart-transformer)[ RSS](/packages/2rius-dart-transformer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (14)Versions (13)Used By (0)

Dart Transformer
================

[](#dart-transformer)

[![Latest Version on Packagist](https://camo.githubusercontent.com/81720685c8ac31ec2647290b1f1cdfe0607bf9b0bb26117fbac1cef972b23834/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f32726975732f646172742d7472616e73666f726d65722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/2rius/dart-transformer)[![GitHub Tests Action Status](https://camo.githubusercontent.com/7e497048376cc3f314a4e95dfa75a2555e78bb95ba7c82787d27bb3897bf2d66/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f32726975732f646172742d7472616e73666f726d65722f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d72756e2d7465737473267374796c653d666c61742d737175617265)](https://github.com/2rius/dart-transformer/actions/workflows/run-tests.yml)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/3e80c4ed2fb3818854613647a7365c4d01ed6ccfa893107ffd5b058ac31785e9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f32726975732f646172742d7472616e73666f726d65722f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/2rius/dart-transformer/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Github PHPStan Action Status](https://camo.githubusercontent.com/726d7ef8f9b2d84f07d560de185d6d67826661a59bcc3a906fc7d6e0790541dd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f32726975732f646172742d7472616e73666f726d65722f7068707374616e2e796d6c3f6272616e63683d6d61696e266c6162656c3d7068707374616e267374796c653d666c61742d737175617265)](https://github.com/2rius/dart-transformer/actions/workflows/phpstan.yml)[![Total Downloads](https://camo.githubusercontent.com/3368cc6e53f6f6fc9c64a7dbcee17995e7f7cf220d22810d610f80c4079b6748/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f32726975732f646172742d7472616e73666f726d65722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/2rius/dart-transformer)

Laravel package for converting PHP classes and types to Dart equivalents, with special support for [Spatie Laravel Data](https://spatie.be/docs/laravel-data/v4/introduction) classes and PHP enums.

This package is heavily inspired by [Spatie's TypeScript Transformer](https://spatie.be/docs/typescript-transformer/v2/introduction), but targets Dart instead of TypeScript.

Features
--------

[](#features)

- 🚀 Transform Spatie Laravel Data classes to Dart classes
- 🎯 Convert PHP enums to Dart enums
- 📦 Generate JSON serialization code with `json_annotation`
- 🔧 Configurable output paths and transformers
- 🎨 Smart type mapping from PHP to Dart
- ⚡ Artisan command for easy transformation

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

[](#installation)

You can install the package via composer:

```
composer require 2rius/dart-transformer
```

You can publish the config file with:

```
php artisan vendor:publish --tag="dart-transformer-config"
```

Usage
-----

[](#usage)

### Generate aggregated Dart definitions

[](#generate-aggregated-dart-definitions)

Run the command to generate a single aggregated file with all transformable classes and enums:

```
php artisan dart:transform
```

By default this writes to `resources/dart/generated.dart`.

### Example Transformations

[](#example-transformations)

#### Laravel Data Class

[](#laravel-data-class)

PHP:

```
