I looked at the code running process when the command line entered sever:run. Finally, the Process class performs the function, the Process is called by the ServerRunCommand class, and the
ServerRunCommand class is instantiated by the service container. This process almost has dozens of layers of processing and callbacks. Is this for generalization and extension? how to understand this design idea? other frameworks seem to be the same