EasyEngine / feature-requests

A repo to track all feature requests on EasyEngine project using issue tracker.
5 stars 2 forks source link

v4 Abstract APIs #55

Open rahul286 opened 7 years ago

rahul286 commented 7 years ago

Update

Description below is bit outdated. v4 is built using WP CLI as base. The following checklist reperesent items that v4 needs to provide at some point on its own because there is no equivalent in WP CLI.


After going through all options, it looks like most of our work will be around symfony/console library. But if we build based on symfony/console directly, or use laravel or something else depends on the bigger picture.

Below is list of some components and libraries we will likely need.

EE_CLI

EE_REST_API

EE_WEB

Web interface will be made with Laravel for sure! 😉

Common

T0-DO

rahul286 commented 7 years ago

Laravel - https://laracasts.com/discuss/channels/general-discussion/building-a-plugin-system

https://github.com/jumilla/laravel-extension

https://github.com/pingpong-labs/modules https://github.com/nWidart/laravel-modules https://github.com/joshbrw/laravel-module-installer

http://packalyst.com/packages/tag/modules

buddye commented 7 years ago

What did you guys end up deciding? Huge EE fan, but would love a system like this. Love Laravel, how can I help?

brightidea commented 7 years ago

Have you considered doing a Vue.js or React.js SPA for the Web interface? Laravel has awesome support for both of these libraries and with Wordpress adopting one of them (has decision been made?) it would go along with what WP developers will have to get used to... :)

I'm frontend JS developer with experience in both + wordpress and would love to help!

robwilde commented 7 years ago

Laravel Artisan would be fantastic. The user base is massive and by far the most popular in PHP. This will make the learning curve and adoption for others more forgivable. The more people we have utilising ee the stronger it will become, hopefully. I love ee and use it for all my development, WordPress, Laravel and Angular. Building 4 on laravel will allow me to extend it with so many fantastic ideas.

rahul286 commented 7 years ago

@robwilde thanks for bumping the thread.

Unfortunately, Laravel and Symfony, both did not make the cut.

We choose to use WP_CLI code base as a starting point.

I will write more about this choice soon on EE blog https://easyengine.io/blog/ .

If you or anyone else can review PHP codebase, it will help.

Here are pull requests with new codebase awaiting review - https://github.com/EasyEngine/easyengine/pulls

robwilde commented 7 years ago

Cool, that was something I didn't think about. I am a heavy wp-cli user so happy to hear it. Will check on the pulls and see if I can help.

rahul286 commented 7 years ago

Ironically we started with wp-cli first, then took a break, explored PHP-cli frameworks, coded mini CLI apps on them, learned few lesson, back to wp-cli! :-)

Glad to know you like wp-cli :-)

benzon commented 7 years ago

Dont do Vue.js or React.js, they are like NodeJS one huge slip and slide no clear direction just all over the god damn place.

if any thing has to be used it should be AngularJS, adleest there is a direction and control compared to the others.

rahul286 commented 7 years ago

@benzon currently we are not thinking about web-interface. The goal is to get minimal CLI version ready first.

renatonascalves commented 7 years ago

I'm glad wp-cli was chosen! :)

rahul286 commented 6 years ago

We went with WP-CLI. We also followed WP-CLI structure for individual commands.

Some sample below. More on the way.

https://github.com/EasyEngine/site-command https://github.com/EasyEngine/wp-command

michacassola commented 6 years ago

Looks like the research here is done?

rahul286 commented 6 years ago

@michacassola yep. I need to go through checklist from issue details so we can document correctly what we are doing. Few things will need to be moved to own issues e.g. docker + cron.

rahul286 commented 6 years ago

@michacassola Just created an issue for docker + cron https://github.com/EasyEngine/easyengine/issues/1026