Download the PHP package wink/wink-model-generator without Composer
On this page you can find all versions of the php package wink/wink-model-generator. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package wink-model-generator
Laravel Model Generator
A focused Laravel package that automatically generates Eloquent models and factories from your existing database schema. For API Resource and Controller generation, check out our companion package wink-resource-generator.
Features
- Supports MySQL and SQLite databases (including in-memory SQLite for testing)
- Generates complete model files with proper namespacing and comprehensive Laravel model properties
- Smart property detection: auto-detects primary keys, key types, incrementing, soft deletes
- Enhanced security: automatically hides sensitive fields (passwords, tokens, etc.)
- Flexible mass assignment: configurable
$fillable
vs$guarded
approaches - Complete property support:
$hidden
,$visible
,$attributes
,$with
,$perPage
, etc. - Auto-detects relationships from foreign keys
- Configurable model generation options via comprehensive config file
- Generates PHPDoc properties for better IDE support
- Includes validation rules based on schema
- Handles custom database connections
- Optional model factory generation
- Connection-based directory structure for multi-database projects
- PSR-4 namespace validation and auto-correction
- Compatible with PHP 8.3+ and Laravel 11+
Installation
You can install the package via composer:
Related Packages
- wink-resource-generator - Generate API Resources, Controllers, and Routes for your Laravel models
Configuration
You can publish the configuration file with:
This will create a config/model-generator.php
file with comprehensive configuration options:
Model Property Generation
The package now automatically generates comprehensive Laravel model properties based on your database schema:
Smart Detection:
- Primary Keys: Auto-detects from schema instead of hardcoding 'id'
- Key Types: Sets
$keyType
to 'string' for UUID/varchar keys, 'int' for integers - Incrementing: Sets
$incrementing = false
for UUID/string primary keys - Soft Deletes: Detects
deleted_at
columns and adds SoftDeletes trait - Timestamps: Detects
created_at
/updated_at
columns
Security & Visibility:
- Hidden Fields: Automatically hides sensitive fields matching patterns (password, token, secret, etc.)
- Visible Fields: Option to use
$visible
instead of$hidden
Mass Assignment:
- Fillable vs Guarded: Choose between
$fillable
and$guarded
approaches - Smart Exclusions: Automatically excludes primary keys and timestamps from fillable
Advanced Properties:
- Default Attributes: Generates
$attributes
array from schema default values - Pagination: Configure custom
$perPage
values - Eager Loading: Auto-generate
$with
for common relationships - Date Formatting: Customize
$dateFormat
Usage
The package provides two main commands for generating models and factories.
Model Generation
Generate Eloquent models from your database schema:
Directory Structure
By default, the package organizes generated model files into a GeneratedModels/{connection_name}
subdirectory. This subdirectory is created within the path defined by the model_path
configuration option (which defaults to app/Models
, resulting in a final default path like app/Models/GeneratedModels/mysql
). A similar structure is used for factories based on the factory_path
configuration.
The typical default directory structure looks like this:
The --directory
command-line option allows you to specify a custom output directory for models, completely overriding the default {model_path}/GeneratedModels/{connection_name}
structure. Similarly, the --factory-directory
option overrides the default for factories. These options accept either full paths or paths relative to the project root.
If the relevant --directory
or --factory-directory
options are not specified, the defaults are:
- Models:
{model_path}/GeneratedModels/{connection_name}
(e.g.,app/Models/GeneratedModels/mysql
using the defaultmodel_path
) - Factories:
{factory_path}/GeneratedFactories/{connection_name}
(e.g.,database/factories/GeneratedFactories/mysql
using the defaultfactory_path
)
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
All versions of wink-model-generator with dependencies
illuminate/support Version ^11.0
illuminate/console Version ^11.0
illuminate/database Version ^11.0
spatie/laravel-package-tools Version ^1.0