Creating a PHP 7/8 FUDforum [message #187954] |
Fri, 18 September 2020 17:34 |
|
interestinglyaverage
Messages: 5 Registered: July 2020
Karma:
|
Junior Member |
|
|
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 19:44] Report message to a moderator
|
|
|