FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » FUDforum Development » FUDforum 3.0+ » Creating a PHP 7/8 FUDforum (About my effort to create a new version of FUDforum)
Show: Today's Messages :: Unread Messages :: Polls :: Message Navigator
| Subscribe to topic | Bookmark topic 
Switch to threaded view of this topic Create a new topic Submit Reply
Creating a PHP 7/8 FUDforum [message #187954] Fri, 18 September 2020 13:34 Go to next message
interestinglyaverage is currently offline  interestinglyaverage   United States
Messages: 5
Registered: July 2020
Karma: 0
Junior Member
add to buddy list
stop ignoring messages by this user
I am working on creating an updated version of FUDforum to be compatible with PHP 7/8, to be object oriented, and have a much more manageable theme system. I want to post here to give details of what I am working on and what I have planned so that the community can make comments, tell me where I might be off base, etc.

Goals
- Separate presentation from business logic - split pages into a model view controller style system.
- Move business logic into proper classes to reduce code duplication and improve maintainability
- Improve database access to be more secure
- Get rid of superglobals to improve security and maintainability

Roadmap
- Implement Twig support <- Done, but not fully tested
-- Add support for composer
-- Add support for twig
-- Add a rendering engine
-- Add support for PHPUnit
-- Add request lifecycle management
-- Replace database connections with new object oriented versions
-- Convert all pages to use a standard layout file and page specific views
-- Begin conversion of public\index.php into application bootstrapper
- Convert business logic to class based system
-- Move logic from page files into classes
-- Move any output mixed into business logic into the view as appropriate
- Localization and SEO
-- Add optional request processor to handle SEO friendly URLs, and generate SEO friendly links
-- Add localization support
-- Add translation support

New Folder Structure
These are new folders to support this structure
DATA_DIR\FUDEngine\Lifecycle - Request and Response classes managing IO
DATA_DIR\FUDEngine\Part - Components of the forum, such as Post and Thread, as well as utilities to generate lists such as PostList and ThreadList
DATA_DIR\FUDEngine\Renderer - Classes related to rendering output, including TwigRenderer and JSONRenderer
DATA_DIR\FUDEngine\Utility - Utilities such as configuration management
DATA_DIR\Page - Page files, moved from WWW_ROOT_DISK\theme\<theme_name>
DATA_DIR\Theme\<theme_name>\template - Template files, such as layout.twig and sidebar.twig
DATA_DIR\Theme\<theme_name>\view - Page views, moved from WWW_ROOT_DISK\theme\<theme_name>
WWW_ROOT_DISK\theme - contains img, js and css folders for theme-specific elements

GitHub
As I am testing this, I have the version I am working on posted to my GitHub: https://github.com/wigedev/FUDForum/

Third Party Support?
A question for the community, what are your thoughts on implementing support for dependency injection (PHP-DI) or third party logging modules such as Monolog?

Please take a look at my plan and the code-in-progress and let me know what you think!

[Updated on: Fri, 18 September 2020 15:44]

Report message to a moderator

Re: Creating a PHP 7/8 FUDforum [message #187955 is a reply to message #187954] Fri, 18 September 2020 17:19 Go to previous messageGo to next message
naudefj is currently offline  naudefj   
Messages: 3775
Registered: December 2004
Karma: 28
Senior Member
Administrator
Core Developer
add to buddy list
ignore all messages by this user
I like it, but have a couple of questions:

1. How do we test your version?
2. Will it be possible to upgrade (or migrate) old forums to your version? This is key, as there are a lot of LARGE (and extremely stable) forums on FUDforum.
3. Do you think it might be possible to use the exiting deployment model for Twig themes, where themes are copied (with localization) from the DATA to WEB directories? This may even allow older and newer themes to exist together in the same deployment.

Just a couple of random notes:
1. FUDforum 3.1 is compatible with PHP 7 (but I haven't tested PHP 8 yet).
2. SEO URL's are currently possible with the path_info_SEO theme.
3. Localization is integrated with TranslateWiki - they are committing translations on a periodic basis.

I assume it won't be possible to push your changes to the existing FUDforum repositories (like https://github.com/fudforum/FUDForum/) as your code is a radical departure from the existing structure. Anyway, I'm looking forward to test your version, to see if it can run my forum sites, and if not, if we can port some of it to the main repo.

[Updated on: Fri, 18 September 2020 17:21]

Report message to a moderator

Message by interestinglyaverage is ignored  [reveal message]  [reveal all messages by interestinglyaverage]  [stop ignoring this user] Go to previous messageGo to next message
Message by GaryM is ignored  [reveal message]  [reveal all messages by GaryM]  [stop ignoring this user] Go to previous messageGo to next message
Message by interestinglyaverage is ignored  [reveal message]  [reveal all messages by interestinglyaverage]  [stop ignoring this user] Go to previous messageGo to next message
Re: Creating a PHP 7/8 FUDforum [message #188033 is a reply to message #187970] Sun, 31 January 2021 06:21 Go to previous message
naudefj is currently offline  naudefj   
Messages: 3775
Registered: December 2004
Karma: 28
Senior Member
Administrator
Core Developer
add to buddy list
ignore all messages by this user
We are about to release FUDforum 3.1.1.
Please let me know if you have any patches that can be folded back into the main branch that won't break existing forums ASAP.
Quick Reply
Formatting Tools:   
  Switch to threaded view of this topic Create a new topic
Previous Topic: Issues with topics not being shown
Next Topic: Is there a script to convert the phpBB to FUD within the PHP-Nuke portal
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Sun Feb 16 01:38:14 EST 2025

Total time taken to generate the page: 0.04188 seconds