Last active
September 24, 2022 02:47
-
-
Save arcanisgk/0c261db6041e36dbd7e722c27af8c73c to your computer and use it in GitHub Desktop.
What to know and do, before and during the development of a php framework?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Hello friends; if you got here you already know a little about what this is about, I am trying to create a roadmap to develop my own framework with your ideas and opinions, since I believe that there is no absolute truth. | |
Objective: create a framework from scratch; with a graphical environment for its setup/configuration; with CMS capabilities to establish the different areas of development: Maintenance, Processes, Reports. | |
What I want to avoid: dependencies on external libraries. | |
What I need from you: your opinions, to know what you consider to be good and bad in the other frameworks, what things would change, but first I need to know in what order it should be developed. | |
What to know and do, before and during the development of a php framework (The Roadmap)? | |
Before development: | |
1. Select the platform (OS, Stack) and the minimum requirements for your framework to work correctly, establish the stack dependencies and the methods to carry out the development and deployment without major problems. create the minimum documentation required on the platform (SO, Stack) to make your framework work. | |
During the development: | |
1. The use of interfaces, traits will be avoided. | |
Roadmap: | |
1. Generic Libraries. | |
1.1 classLoader. | |
2. installer/environment configuration from form. | |
Note: | |
OS: Operating System | |
Stack: Server application or that provides the web service for the execution of php or other languages |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I think it's going to be very hard to avoid external libraries, as you will be rewriting a lot of already-written functionality, much of it essentially perfected.
Also, they provide much modularity, and modularity will be a key factor to enjoyable usage of your framework.
I think Linux, particularly Ubuntu should be targeted, as I've found in my PHP development that Linux has been the easiest/most-powerful to work PHP with over time, and Ubuntu most recently.
However, you should keep in mind targeting all popular OS stacks, such as Ubuntu, Windows, and Mac. Other people however, if they like your framework and want to run it on their OS, could make contributions for compatibility.
Docker is good for cross-compatibility, but I've run into a lot of trouble with it on Mac and Windows, so I would consult with other PHP Docker users about this.
I think you'll find this very hard to do as well... interfaces are one of the most powerful capabilities in PHP frameworks, and you may just not have enough understanding of or experience with them to know why. I would highly recommend reconsidering this requirement.
[EDIT: If you prefer simplicity, then users preferring simplicity will also use or continue with your framework; however, simplicity only lasts so long as an app evolves, though not all apps will evolve much. I think there is room for simple frameworks.]
Also, traits are very useful.
Both are best for modularity and will reduce duplicate code functionality, and give users more choice and flexibility for their own apps using your framework.