Download the PHP package watheqalshowaiter/model-fields without Composer

On this page you can find all versions of the php package watheqalshowaiter/model-fields. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package model-fields

Model Fields

Required Laravel Version Required PHP Version Latest Version on Packagist GitHub Test Matrix Action Status GitHub Code Style Action Status Total Downloads GitHub Stars StandWithPalestine ko-fi

Quickly retrieve required, nullable, and default fields for any Laravel model. Think that's simple? You probably haven’t faced the legacy projects I have. :).

[!Note]
This is the documentation for version 3, if you want the version 1 or version 2 documentations go
V2 with this link.\ V1 with this link.

Installation

You can install the package via Composer:

We prefer --dev because you usually use it in development, not in production. If you have a use case that requires using the package in production, then remove the --dev flag.

Optionally, if you want to publish the configuration to disable/enable model macros.

Usage

We Assume that the User model has this schema as the default.

[!IMPORTANT]
We have two ways:

  • Either use the ModelFields facade.
  • Or use the method statically on the model. (using the magic of laravel macros).
  • Or use the model:fields console command.

Here is the sample:

That's it!

[!NOTE] To disable the macro approach, set the enable_macro value to false in the published model-fields.php configuration file.

Another Complex Table

Let's say the Post model has these fields

Observer and Event-Filled Fields

Fields that are automatically filled when creating by model observers, boot events, and event listeners are automatically excluded from required fields.

The package supports three patterns:

For example, given this model:

And more

We have the flexibility to get all fields, required fields, nullable fields, primary key, database default fields, application default fields, and default fields. You can use these methods with these results:

All fields

Nullable fields

Primary field

Database default fields

Application default fields

Default fields

More on console commands

Why?

The problem

I wanted to add tests to a legacy project that didn't have any. I wanted to add tests but couldn't find a factory, so I tried building them. However, it was hard to figure out the required fields for testing the basic functionality since some tables have too many fields across many migration files.

The Solution

To solve this, I first created a simple facade class and a trait (which was later removed) to allow direct method usage on models for retrieving required fields. Later, I added support for older Laravel versions, as most use cases were on those versions.

So Briefly, This package is useful if:

Features

✅ Supports Laravel versions: 12, 11, 10, 9, 8, 7, and 6.

✅ Supports PHP versions: 8.4, 8.3, 8.2, 8.1, 8.0, and 7.4.

✅ Supports multiple ways of fetching fields: using console commands, or facades, or models macros.

✅ Supports SQL databases: SQLite, MySQL/MariaDB, PostgreSQL, and SQL Server.

✅ Fully automated tested with PHPUnit.

✅ Full GitHub Action CI pipeline to format code and test against all Laravel and PHP versions.

✅ Can return fields based on the dynamically added class strings (in the facade method).

Testing

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

If you have any ideas or suggestions to improve it or fix bugs, your contribution is welcome.

I encourage you to look at Issues which are the most important features that need to be added.

If you have something different, submit an issue first to discuss or report a bug, then do a pull request.

Security Vulnerabilities

If you find any security vulnerabilities don't hesitate to contact me at watheqalshowaiter[at]gmail[dot]com to fix them.

Related Packages

Support this project

If this project helps you, consider supporting it on Ko-fi ☕.

Credits

License

The MIT License (MIT). Please see License File for more information.


All versions of model-fields with dependencies

PHP Build Version
Package Version
Requires php Version >=7.4
illuminate/contracts Version ^12.0||^11.0||^10.0||^9.0||^8.0||^7.0||^6.0||^5.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package watheqalshowaiter/model-fields contains the following files

Loading the files please wait ...