Extensionalize phpBB

General discussion of development ideas and the approaches taken in the 3.x branch of phpBB. The current feature release of phpBB 3 is 3.3/Proteus.
Forum rules
Please do not post support questions regarding installing, updating, or upgrading phpBB 3.3.x. If you need support for phpBB 3.3.x please visit the 3.3.x Support Forum on phpbb.com.

If you have questions regarding writing extensions please post in Extension Writers Discussion to receive proper guidance from our staff and community.
User avatar
javiexin
Registered User
Posts: 90
Joined: Thu Dec 22, 2011 10:04 am

Extensionalize phpBB

Post by javiexin »

Hi,

I have a proposal, to see what you think about it.

Now that the extension system is more and more robust, I think it would make sense to lighten the core by externalizing quite some features into official? extensions.

That way, the core would be kept slim, easier to manage, and with much clearer interfaces and integration points. Besides, in moving whatever functionality is chosen to an extension, there will be lots of integration points (events, or core classes, or javascript, or templates, or... you name it) that will be identified, or improved, with a real use case. For devs, that will be good, as the core focus should be just that: the core!. For extension developers, more integration points, clearer, and easier ways to complement "core" functionality. For admins, they would be able to "pick and choose" what "official" extensions they would want to install, and they won't be bothered or distracted by features that they do not care about.

Some things that I can envision as extensions could be (note this is JUST a first attempt and discussion point!):
  • Friends/foes
  • Banning
  • Bot management
  • Profile fields
  • Polls
  • Attachments
  • Feeds
  • Ranks
  • Reporting
  • Birthdays
Some of these might not make sense to you, and maybe I missed the most obvious one, but the concept is the same: keep the core as slim as possible, focused on forum/user/group/post/permission/security/system and extensibility options (extensions, styles and languages). There are quite a lot of things still to cover even with all the mentioned parts outside of the core.

What do you think? Makes sense?

Remember that I do NOT want to KILL any of these functions. I just want to move them OUT of the core, into an OFFICIAL extension, that could even be included in the released package... Each admin would enable/disable any of these at will...

-javiexin

User avatar
DavidIQ
Customisations Team Leader
Customisations Team Leader
Posts: 1903
Joined: Thu Mar 02, 2006 4:29 pm
Location: Earth
Contact:

Re: Extensionalize phpBB

Post by DavidIQ »

I've brought this idea up myself before and, on the surface, it makes sense as then individual features can be updated and maintained separately, but would likely take several major versions to actually do something like this.

But then the elephant in the room came up on its own through the later-founded Official Extensions Team: how would this sort of model be supported? With Official Extensions there are very few persons (2) currently giving support for 7 extensions and counting so for this to even work at all there would need to be a shift in how code gets maintained and supported and how users are supported.

It then becomes somewhat of a nightmare scenario where there are many different repositories to maintain and keep up to date. I mean it's a good idea, but becomes very complex very fast and is already getting there with Official Extensions. Also some of those features you've listed are simple enough that making them extensions could make them unnecessarily complex for very little gain.
Image

User avatar
Louis7777
Registered User
Posts: 394
Joined: Fri Apr 04, 2014 12:32 am

Re: Extensionalize phpBB

Post by Louis7777 »

javiexin wrote: Wed May 31, 2017 6:58 pm Remember that I do NOT want to KILL any of these functions. I just want to move them OUT of the core, into an OFFICIAL extension, that could even be included in the released package... Each admin would enable/disable any of these at will...
It may not be your intention, but it could lead to that.

I've seen it with a few other Web software where everything was a module/plugin/extension controlled through the back office.

Then a new major version comes up and surprise surprise a few of them are missing - because let them be normal extensions to lighten the core.

User avatar
david63
Registered User
Posts: 355
Joined: Mon Feb 07, 2005 7:23 am

Re: Extensionalize phpBB

Post by david63 »

I can see the logic to some extent but I think where it falls down is that you are suggesting that these new "official" extensions are packaged with the core so that would mean that the core product would become "bloated". By using extensions then you would be increasing the number of files in the package - I doubt that taking these out of the core would result in the reduction of many files (in size maybe but not in quantity) but having them as extensions would definitely increase the number of files. Is the number of files an issue? Well in some respects yes it is - mainly due to limits imposed by some hosts where there is a maximum number of files that you can have - even with unlimited disk space.

What would, in my view, be a better option would be to have "switches" so that these components can be activated/deactivated as an Admin chooses.
David
Remember: You only know what you know -
and you do not know what you do not know!

User avatar
MattF
Extension Customisations
Extension Customisations
Posts: 675
Joined: Mon Mar 08, 2010 9:18 am

Re: Extensionalize phpBB

Post by MattF »

Seems like a good way to make a lot of work admins again. They would have to find, download, install and manage updates on a whole slew of features that have always been built into the core.

A big no vote from me.
Has an irascible disposition.

User avatar
javiexin
Registered User
Posts: 90
Joined: Thu Dec 22, 2011 10:04 am

Re: Extensionalize phpBB

Post by javiexin »

I understand most of the objections, but I really see more benefits down the line.

First of all, about the work, and maintenance effort, I think it should not be more than it is now. I am not proposing to ADD major functionality, but to SEPARATE that functionality into manageable chunks. There will be a significant effort in separating, specially the very embedded parts (in my examples, attachments may be the more widespread/scattered feature). Of course, it can be done in multiple steps, as DavidIQ suggested. But the end result should not be more complex than what it is now, so the same team should be able to manage it, maybe redistributing the load and participation between the groups. And about repositories, why not use the same one, I mean, use the ext/ folder within phpbb repository... That way, everything would be in the same repo.

About the file numbers, I don't think this has ever been a criteria here. If it were, then the extension system is totally wrong, and mods would be the way to go: mods add very few files, and modify core, while extensions keep the core clean at the expense of a few more files: honestly, I would pay the extra price. And in general, with the use of the "Frameworks" and vendor folder, we are already creating a lot of files (Symphony, Twig, Composer...). The addition that this would mean would be insignificant compared to include a new "vendor" library... And packaging them with the core would be just for the "lazy" admins, although with Composer install this should not be an issue or a need any more, and should be simple enough that the least expert of the admins would do it without effort. All the issues that VSE raise should be mostly compensated by the use of Composer, and having these as the first choices (as "core" extensions).

Not the smallest of the benefits would be a clear cut between core and "extra" features. If someone would be designing this from scratch today, the core would be MUCH smaller, and focused on the key aspects, and everything else would be "extras". Another big benefit would be the availability of clear ways in the core where such extensions should be plugged, allowing that way to have "alternative" implementations of such features.

There are areas that are not that difficult to separate today, such Profile Fields (that, in my opinion, should be in the same separate group as Ranks and Birthdays and maybe even Avatars). While there are others where the code is scattered throughout the core, such as Polls, semi-embedded in topics, or Attachments...

Would it be interesting to have a proposal with some code behind? I mean, an extension for one or various of these areas, to test the idea?.

-javiexin

koraldon
Registered User
Posts: 33
Joined: Thu Mar 10, 2005 12:06 pm

Re: Extensionalize phpBB

Post by koraldon »

As a user I would love to see more functionality in the core and not vice versa.
Extensions required extra effort from the admin , especially since installing and updating is via ftp.

Look at IPB 4.2 for example, they add features into core: https://invisioncommunity.com/news/invi ... -42-r1030/

User avatar
3Di
Registered User
Posts: 951
Joined: Tue Nov 01, 2005 9:50 pm
Location: Milano 🇮🇹 Frankfurt 🇩🇪
Contact:

Re: Extensionalize phpBB

Post by 3Di »

koraldon wrote: Fri Jun 02, 2017 6:28 am As a user I would love to see more functionality in the core and not vice versa.
Extensions required extra effort from the admin , especially since installing and updating is via ftp.

Look at IPB 4.2 for example, etc..// snip //
May I say you are missing the point here?
🆓 Free support for our extensions also provided here: phpBB Studio
🚀 Looking for a specific feature or alternative option? We will rock you!
Please PM me only to request paid works. Thx. Want to compensate me for my interest? Donate
My development's activity º PhpStorm's proud user º Extensions, Scripts, MOD porting, Update/Upgrades

User avatar
DavidIQ
Customisations Team Leader
Customisations Team Leader
Posts: 1903
Joined: Thu Mar 02, 2006 4:29 pm
Location: Earth
Contact:

Re: Extensionalize phpBB

Post by DavidIQ »

Totally...
Image

User avatar
MattF
Extension Customisations
Extension Customisations
Posts: 675
Joined: Mon Mar 08, 2010 9:18 am

Re: Extensionalize phpBB

Post by MattF »

The very idea of this makes everything many orders of maginitude harder to maintain, as far as updates, compatibility, development, usability and language translations go.

It makes releases more difficult to ship as we would be required to also manage/release multiple extensions with a phpBB release to ensure users are kept up to date, as well as distribute them with every release, making an already dificult task even more difficult for those involved in releases.

It degrades testing phpBB. phpBB's core code is continuously tested in its entirety on three separate development branches. Some minor change here could create a major bug there, and if all these componenets are removed, some phpBB development regressions will no longer be detected, and the burden on the support team will sky rocket as they get bombarded by unforseen bugs and support topics, and have to scramble to figure out why the problem is occurring by dealing with a littany of separate extensions..probelms that could have been detected during testing.

It also makes testing and devloping extensions immensely difficult. Extensions are always developed and tested and validated against fresh phpBB installations. Removing all those componenets from the core means extensions will not be tested in the complete environment they are currently. It also measn to pull off testing in a "fully loaded" board would make the lives of the testers enourmously tougher than it already is. And indicidual developers will most likely not be developing while on a "fully-loaded" install either.

Also extensions that are continuously unit-tested will not be able to detect any bugs associated with those extensions, as they won't be part of the core phpBB installation that is used during unit testing, leading to extension authors having to support multiple new issues unforeseen, making their motivation to do this work wane.

It also ensures the componenets will probably go stale as once it's out of the core, it will no longer be a primary responsibility of the development team. And the extensions team is already understaffed and overwhelmed with all of its current extensions duties.
Has an irascible disposition.

Locked