Download the PHP package zhangyu0310/eloquent-model-generator without Composer

On this page you can find all versions of the php package zhangyu0310/eloquent-model-generator. 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 eloquent-model-generator

Eloquent Model Generator

Eloquent Model Generator is a tool based on Code Generator for generating Eloquent models.

说明

这个仓库是从原开发者那边fork的,基于版本1.3.7

由于开发中遇到了一些小问题,对源码进行了少量修改。

修改如下:

  1. 工具会默认忽略表的主键,不会将其添加到$fillable字段中。(原因应该是大部分使用者的数据库主键是Auto Increment )

我目前的项目中,这个字段并不是自增的,如果不将主键增加到$fillable中,没办法使用fill($request->all())之类的方法直接填充。

解决办法:

我增加了一个参数 --pk-fillable (Primary Key fillable),是一个VALUE_NONE。 指定了这个参数后,主键也会被添加到$fillable中。

  1. 工具在检查外键关系时,会扫描其它的表(table-name指定之外的表)

在这个时候,如果其它表中的列,有一些很特殊的类型,例如bit类型。程序就会抛出异常,没有办法正常工作。我发现这个问题,是因为这边使用了Liquibase生成数据库表,而Liquibase会生成一张名为databasechangeloglock的表:

根本原因是调用DBALlistTables()时,对于其不支持的类型(bit类型)抛出的异常。

解决办法:

我这里的解决办法比较简单粗暴,仅适合没有使用外键的业务。(从一个前数据库开发人员的角度来说,外键还是能不用就不用,效率很差,而且很多分布式数据库不支持外键)

--ignore-fk (Ignore Foreign Key),是一个VALUE_NONE。指定了这个参数后,工具会跳过外键关系的检查。

  1. 这个可以算是一点点小特性。生成的model,它头部会有字段的说明。我在这个说明后面加了数据库表列上的COMMENT。会生成类似这样的model文件:

不过这个功能需要配合我Git下的 Code Generator 仓库里的代码生成器使用。(也是修改了一点点内容)

Installation

Step 1. Add Eloquent Model Generator to your project:

Step 2. Register GeneratorServiceProvider:

If you are using Laravel version 5.5 or higher this step can be omitted since this project supports Package Discovery feature.

Step 3. Configure your database connection.

Usage

Use

to generate a model class. Generator will look for table with name users and generate a model for it.

table-name

Use table-name option to specify another table name:

In this case generated model will contain protected $table = 'user' property.

output-path

Generated file will be saved into app directory of your application and have App namespace by default. If you want to change the destination and namespace, supply the output-path and namespace options respectively:

output-path can be absolute path or relative to project's app directory. Absolute path must start with /:

base-class-name

By default generated class will be extended from Illuminate\Database\Eloquent\Model. To change the base class specify base-class-name option:

backup

Save existing model before generating a new one

If User.php file already exist, it will be renamed into User.php~ first and saved at the same directory. After than a new User.php will be generated.

Other options

There are several useful options for defining several model's properties:

Overriding default options globally

Instead of spcifying options each time when executing the command you can create a config file named eloquent_model_generator.php at project's config directory with your own default values. Generator already contains its own config file at Resources/config.php with following options:

You can override them by defining model_defaults array at eloquent_model_generator.php:

Registring custom database types

If running a command leads to an error

it means that you must register your type <ANY_TYPE> with Doctrine.

For instance, you are going to register enum type and want Doctrine to treat it as string (You can find all existing Doctrine's types here). Add next lines at your config/eloquent_model_generator.php:

Usage example

Table user:

Command:

Result:


All versions of eloquent-model-generator with dependencies

PHP Build Version
Package Version
Requires illuminate/database Version ^5.0 || ^6.0 || ^7.0 || ^8.0
illuminate/support Version ^5.0 || ^6.0|| ^7.0 || ^8.0
doctrine/dbal Version ^2.5 || ^3.0
zhangyu0310/code-generator Version ^1.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 zhangyu0310/eloquent-model-generator contains the following files

Loading the files please wait ....