GithubHelp home page GithubHelp logo

ultimatemodulecreator / umc Goto Github PK

View Code? Open in Web Editor NEW
58.0 5.0 10.0 4.62 MB

Magento 2 Ultimate Module Creator

License: MIT License

PHP 37.57% JavaScript 16.18% HTML 1.97% CSS 2.20% Twig 41.95% Dockerfile 0.06% Makefile 0.08%
magento2 php

umc's Introduction

UMC

Ultimate Module Creator

Description

Ultimate module creator (UMC) is a standalone application for creating CRUD modules / bundles / for different CMS You can use the UI to create your entities just like you would use PhpMyAdmin to create tables.
When you are done, you can download immediately the module from the popup that appears, or you can find your module in var/umc/{platform}/{version} folder.
This application is intended for developers. It should not be used in production.
Also, the modules you create with it should be tested before moved to production.
You like the work the developer has done and it saved you a lot o time and money, consider donating. Any amount is welcomed. Just change 10 from the previous URL.

Requirements without docker

PHP version 7.2.5 or higher. Some PHP extensions may be needed. See composer.json for more details.

Requirements with docker

  • docker-compose
  • gnu make (not mandatory but it's easier to install)

Supported platforms

  • Magento 2.3.4+
  • Magento 2.4.*
  • Sylius 1.8+

Planned platforms

  • Shopware 6

Installation without Docker

  • create a folder on your server
  • navigate to that folder
  • clone this repo: https://github.com/UltimateModuleCreator/umc.git .
  • run composer install
  • copy .env.dist to .env
  • run bin/console assets:install
  • go to that folder in your browser.

Installation with Docker (tested only on linux)

  • create a folder (almost) anywhere you want
  • navigate to that folder
  • clone this repo: https://github.com/UltimateModuleCreator/umc.git .
  • copy .env.dist to .env and change in .env the values if you need them changed
  • run make install
  • call this in the browser http://umc.me/index.php (in case you did not change the values in .env).

How to use

  • From the top left menu select "Platforms." and you should see he list of supported platforms.
  • From the "Create Module" column for your desired platform, select the desired version
  • Fill in the form as you want. Each field has a tooltip explaining what it is used for.
  • Add as many entities and attributes / fields as you need.
  • See also the FAQ section if something is unclear.
  • You can also select one of the modules you previously created and edit it.
  • After you are done, you can find a zip file with your extension in var/umc/{platform}/{version} folder.

FAQs

  • If I edit a module, and copy the files in my platform instance over the previous version, does it work? Possibly, but most probably not. If you changed the structure of the entities you may need to uninstall manually the module and install it again.

Coding Standards

The generated extensions follow the PSR1, PSR2, PSR12 coding standards, but...
Due to the values filled in the form, you can easily break one of the rules. Special the max 120 chars per line.
This is not prevented by the UMC, but you will find in the archive that is generated with the module 3 (or 4) files. All of them are located in the _phpcs folder. (these files are not useful for the proper functioning of the module you create)
These files contain the report after running php code sniffer on the generated code with the PSR1, PSR2, PSR12 and the magento coding standards. (for magento only)
If you have your own coding standards you can add them the platform.yml file of the desired platform under the config/coding_standards section.

Contributing to the UMC

  • If you find a bug, report it here
  • you have a cool idea for improving it but you don't want to implement it, post it here. There are no guarantees that it will get implemeted though.
  • you have a cool idea for improving it and you can implement it, feel free to make a PR. But before doing so, make sure that the new code you create it is covered with unit tests and the existing unit tests still pass.

umc's People

Contributors

benthunder avatar dependabot[bot] avatar meminuygur avatar thampe avatar ultimatemodulecreator avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

umc's Issues

Table with more than 16 attributes causes failure on SQL install

SQLSTATE[42000]: Syntax error or access violation: 1070 Too many key parts specified; max 16 parts allowed

This happens when I create a table with more than 16 fields (attributes). I need more than 16 fields here and older UMC1 handled these fine. What gives?

Also, I do not see any Setup/InstallShema.php files being created. How is it installing the tables then?

Image Uploading in admin area does not work when the Module Name has capital letters after the first character

I created a module called 'Vendor/CustomsGallery/' that has an image field in it. On Magento 2.3.3 when I try to add a record from the admin area, I get an error 'A technical problem with the server created an error.' when I try to upload an image. I looked at closely at all the code, and compared it to another module I made called 'Vendor/Artists/' that works fine. It appears the issue was the naming of the module. I had to rename it to 'Vendor/Customsgallery' to get it to work.

Add a "disable in admin end" setting for attributes

I added a "Disable in admin" checkbox for entity attributes in Magento modules (by modifying MagentoBundle/Model/Attribute, MagentoBundle/Resources/config/form/attribute.yml, and the twig templates),

would you add this feature in your project ?
It helps us managing which attribute should be user set or code set.

UMC interface :
Screenshot 2020-10-06 at 09 53 14

Magento Admin :
Screenshot 2020-10-06 at 09 54 07

Error on install

Hi,
with docker on linux during installation I get this error:

[4/9] RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends software-properties-common:
#7 0.373 Reading package lists...
#7 1.413 Building dependency tree...
#7 1.628 Reading state information...
#7 1.877 The following additional packages will be installed:
#7 1.877 dh-python distro-info-data gir1.2-glib-2.0 gir1.2-packagekitglib-1.0
#7 1.878 iso-codes libapt-inst2.0 libcurl3-gnutls libdbus-1-3 libdbus-glib-1-2
#7 1.878 libgirepository-1.0-1 libmpdec2 libpackagekit-glib2-18 libpython3-stdlib
#7 1.878 libpython3.5-minimal libpython3.5-stdlib libreadline7 lsb-release
#7 1.879 python-apt-common python3 python3-apt python3-dbus python3-gi
#7 1.879 python3-minimal python3-pycurl python3-software-properties python3.5
#7 1.879 python3.5-minimal readline-common
#7 1.881 Suggested packages:
#7 1.881 isoquery lsb python3-doc python3-tk python3-venv python3-apt-dbg
#7 1.881 python-apt-doc python-dbus-doc python3-dbus-dbg libcurl4-gnutls-dev
#7 1.881 python-pycurl-doc python3-pycurl-dbg python3.5-venv python3.5-doc
#7 1.881 binfmt-support readline-doc
#7 1.881 Recommended packages:
#7 1.881 dbus packagekit unattended-upgrades
#7 2.020 The following NEW packages will be installed:
#7 2.020 dh-python distro-info-data gir1.2-glib-2.0 gir1.2-packagekitglib-1.0
#7 2.020 iso-codes libapt-inst2.0 libcurl3-gnutls libdbus-1-3 libdbus-glib-1-2
#7 2.020 libgirepository-1.0-1 libmpdec2 libpackagekit-glib2-18 libpython3-stdlib
#7 2.021 libpython3.5-minimal libpython3.5-stdlib libreadline7 lsb-release
#7 2.021 python-apt-common python3 python3-apt python3-dbus python3-gi
#7 2.021 python3-minimal python3-pycurl python3-software-properties python3.5
#7 2.021 python3.5-minimal readline-common software-properties-common
#7 2.030 0 upgraded, 29 newly installed, 0 to remove and 72 not upgraded.
#7 2.030 Need to get 9955 kB of archives.
#7 2.030 After this operation, 50.3 MB of additional disk space will be used.
#7 2.030 WARNING: The following packages cannot be authenticated!
#7 2.030 libapt-inst2.0
#7 2.033 E: There were unauthenticated packages and -y was used without --allow-unauthenticated

executor failed running [/bin/sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends software-properties-common]: exit code: 100
ERROR: Service 'www' failed to build : Build failed
Makefile:29: recipe for target 'container' failed
make: *** [container] Error 1

con you helpe me?

Is this Repo ever going to be updated?

It's been a long time since the author of this repo has made any updates. I like UMC, and I've used it since Magento 1, and I loved the features it provided back in the Magento 1 version (mainly table relationships). This new V2 version is a great start, but it does not even provide features the V1 version did, and it looks as if it won't be updated anytime soon with fixes, or table realtionships added. So, I'd like to ask the author of this repo if they are still planning to update it, or is this repo dead?

Fatal error: Method Magento\Ui\TemplateEngine\Xhtml\Result::__toString() When generate Module with Image uploader for M2.2

When we try to create module for M2.2 version it missed the below code in Model/{YourModelFIle}.php in constructor.

public function __construct( Context $context, Registry $registry, UploaderPool $uploaderPool, AbstractResource $resource = null, DbCollection $resourceCollection = null, array $data = [] ) { $this->uploaderPool = $uploaderPool; /* this line is missing */ parent::__construct($context, $registry, $resource, $resourceCollection, $data); }

So it create error like Fatal error: Method Magento\Ui\TemplateEngine\Xhtml\Result::__toString() must not throw an exception, caught Error: Call to a member function getUploader() on null in D:\wamp64\www\mage227\vendor\magento\module-ui\Component\Wrapper\UiComponent.php on line 0

It was realy hard time to find what actually causing to occure this.

Make Umc modular

split features per modules that can be enabled / disabled via settings page.
Example:

  • backend
  • frontend
  • api
  • ...

About "Your requirements could not be resolved to an installable set of packages"

Hello good afternoon all right ?

As images I can not install your module in Magento 2.3, can you help me?

captura de tela de 2019-02-08 11-38-48

	Your requirements could not be resolved to an installable set of packages.

	  Problem 1
		- ultimatemodulecreator/umc-base dev-master requires magento/framework 100.*.* -> satisfiable by magento/framework[100.0.2, 100.0.3, 100.0.4, 100.0.5, 100.0.6, 100.0.7, 100.0.8, 100.0.9, 100.1.0, 100.0.10, 100.0.11, 100.1.1, 100.0.12, 100.1.2, 100.1.3, 100.0.13, 100.1.4, 100.0.14, 100.1.5, 100.0.15, 100.1.6, 100.1.7, 100.0.16, 100.0.17, 100.1.8, 100.1.9, 100.0.18, 100.0.19, 100.1.10, 100.1.11, 100.0.20, 100.1.12, 100.1.13, 100.1.14, 100.1.15, 100.1.16].
		- ultimatemodulecreator/umc-base dev-master requires magento/framework 100.*.* -> satisfiable by magento/framework[100.0.2, 100.0.3, 100.0.4, 100.0.5, 100.0.6, 100.0.7, 100.0.8, 100.0.9, 100.1.0, 100.0.10, 100.0.11, 100.1.1, 100.0.12, 100.1.2, 100.1.3, 100.0.13, 100.1.4, 100.0.14, 100.1.5, 100.0.15, 100.1.6, 100.1.7, 100.0.16, 100.0.17, 100.1.8, 100.1.9, 100.0.18, 100.0.19, 100.1.10, 100.1.11, 100.0.20, 100.1.12, 100.1.13, 100.1.14, 100.1.15, 100.1.16].
		- magento/framework 100.1.16 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6|~7.1.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.15 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.14 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.13 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.12 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.20 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.11 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.10 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.19 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.18 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.9 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.8 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.17 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.16 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.7 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.6 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.15 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.5 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.14 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.4 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.13 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.3 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.2 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.12 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.1 requires php ~5.6.0|7.0.2|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.11 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.10 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.1.0 requires php ~5.6.0|7.0.2|~7.0.6 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.9 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.8 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.7 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.6 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.5 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.4 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.3 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- magento/framework 100.0.2 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.2.14) does not satisfy that requirement.
		- Installation request for ultimatemodulecreator/umc-base dev-master -> satisfiable by ultimatemodulecreator/umc-base[dev-master].

Allow core entities in relations

Feature-idea:

Allow core entities in relations.

For example:
I'd like to create a custom entity that has one-to-one relationship with a customer.

Ideally, this would also add a preference in the module.xml file.

I'd be happy to work on this, however, I think I don't understand where to begin. Do you have a documentation or some guideline on how to extend UMC?

Image Field on Admin Edit: outputProcessor call should be uploaderPool call

When I have an image field in my module, and I try to edit a record in the admin, I get an error about cannot getUploader. If my module's name is 'Artist', then the 'Model/Artist.php' file gets generated with this line in the constructor: '$this->outputProcessor = $outputProcessor;'. This causes an error when trying to access the Edit page for a record. Instead, this should be $this->uploaderPool = $uploaderPool;. This looks like an issue in Entity.php.html.twig at line 103.

About working on Nginx

Ola Boa Tarde, tudo bem

Conforme imagens vemos que não funciona no Nginx, tem alguma dica ?

captura de tela de 2019-02-08 12-21-08
captura de tela de 2019-02-08 12-21-10
captura de tela de 2019-02-08 12-21-11
captura de tela de 2019-02-08 12-34-21
captura de tela de 2019-02-08 12-34-30
captura de tela de 2019-02-08 12-34-34
captura de tela de 2019-02-08 12-34-39

Fatal Error: composer.lock was created for PHP version 7.4

Fatal Error: composer.lock was created for PHP version 7.4 or higher but the current PHP version is 7.3.17.

Executing script cache:clear [KO]
 [KO]
Script cache:clear returned with error code 1
!!  Fatal Error: composer.lock was created for PHP version 7.4 or higher but the current PHP version is 7.3.17.
!!  
Script @auto-scripts was called via post-install-cmd

InlineEdit not saving data

Hi there, I am not sure exactly why, but I noticed that this piece of code was not working in generated module InlineEdit.php controller

$store = $this->storeRepository->get((int)$storeId);
$storeData = $postItems[$storeId];
$this->dataObjectHelper->populateWithArray($store, $storeData, StoreInterface::class);
$this->storeResourceModel->saveAttribute($store, array_keys($storeData));

Both $store & $storeData are fine, data is fine & StoreInterface exists & has the right methods, so it should be some problem with populateWithArray call... but I have not debugged that

Changing to

$store = $this->storeRepository->get((int)$storeId);
$storeData = $postItems[$storeId];
$store->addData($storeData);
$this->storeResourceModel->saveAttribute($store, array_keys($storeData));

Then it works

Backend controller infinite loop Magento 2.3

When creating entities and linking them from the admin menu, if you select one in 2.3.x you get sent in a loop of;

[url]/[adminpath]/[module_name]/[enttiy_name]/index/key/48484848484/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/adminhtml/dashboard

Duplicate Entity

I have some forms that share similar field names . A 'Duplicate Entity' functionality would be nice for this purpose.

Generating wrong frontend router

I am testing this on Windows Environment with PHP 7.2
I tried with creating new module with this and found that when we inset it to main top navigation it redirect to 404 due to wrong link.

It seems frontname is not appending in the url.

I manually change url to frontname it started working.

Before :: http://prntscr.com/mzuslz
After :: http://prntscr.com/mzus1v

also it is not working with Image or FIle upload wrong route configure in ui file

Save and continue

It will be amazing if the "Add New Attribute" form has a button "save and continue" as default button. When you clic on it, the form will be save and a new attribute form will shown so you can create a new one.

Make entities store view aware

Add the option to show a multiselect with the store views in the add / edit entity form (similar to cms pages and blocks)

SQL Error in setup:upgrade

If the names of the modules and entities are not single words there are errors in the table names and fails to setup:upgrade making a table name that is used unquoted

use the entity name like "entity name" for the entity and a table name like "company_module_entity _name" is created... then in... Magento\Framework\Setup\Declaration\Schema\Db\MySQL\DbSchemaReader::readIndexes

there is where it is used unquoted...

$sql = sprintf('SHOW INDEXES FROM %s WHERE %s', $tableName, $condition);

Docker-compose up error

Hey, there,

I had a small issue running container:

The following packages have unmet dependencies:
 apt-utils : Depends: apt (= 1.8.2.3) but 1.4.8 is to be installed
E: Unable to correct problems, you have held broken packages.
ERROR: Service 'www' failed to build: The command '
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y \
    libfreetype6-dev \
    libicu-dev \
    libssl-dev \
    libjpeg62-turbo-dev \
    libmcrypt-dev \
    libedit-dev \
    libzip-dev \
    libedit2 \
    libxslt1-dev \
    libonig-dev \
    apt-utils \
    gnupg \
    vim \
    wget \
    curl \
    unzip \
    tar
' returned a non-zero code: 100

I had no issues after commenting out apt-utils \. Not sure where the package helps exactly. 🤓
Thanks

TypeError: $parent.getChildren is not a function

Hi - looking to create simple module that has a Relation between two Entities. I have created two simple Entities - Pet and Owner and wanted to link so that there are multiple pets to an owner defined.

After creating the Entities and going to create a Relation (Add Entity Relation Button) I see the blank form added but the Entity 1 and Entity 2 dropdowns are blank and the JS console gives the error: "TypeError: $parent.getChildren is not a function".

I have tried on several Browsers with empty caches

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.