nette / bootstrap

🅱 The simple way to configure and bootstrap your Nette application.
https://doc.nette.org/bootstrap
Other
668 stars 36 forks source link

Add autoconfiguration of Nette Extensions #61

Open jelen07 opened 5 years ago

jelen07 commented 5 years ago

I'm not sure if this is the right repostiory for an issue like this, if not I'm sorry in advance.

:bulb: The idea

It would be really helpful if the developer could enable extension simply by

$ composer require 68publishers/application # or any other Nette extension

and some mechanism will do other manual work automatically. Like

To achieve something like that, it would be necessary to create some recommendations (best practices) for extension structure, project configuration and so on.

There're at least three important questions

  1. How to implement this - should it be the Composer extension or something else?
  2. Where should be stored configuration files - within the extension or in some other repository?
  3. What types of "actions" should be implemented? (see the previous list)

Any hints?

janbarasek commented 4 years ago

Now I think it can be solved by Package Manager (not the official solution).

mabar commented 1 year ago

I am working on orisai/installer which solves that just by running composer require/update

Currently is implemented registration of config files from vendor and their sorting based on composer dependencies.

I will also add interactive upgrade scripts in case package has some required configuration.

However I think handling assets is out-of-scope as there are many possible solutions. I will probably soon implement extension for handling assets without requiring build tool like Vite/Webpack. It may be used as an optional dependency by installer using packages for zero config assets.

Running migrations is completely out of scope as it is practically just adding folder with migrations in vendor config and running single command in the app. Copying to app and running from there (so they can be edited) is more of a migration tool job.