我的问题是:
我将把我的其他类文件(数据库,用户,记录器,邮件程序等)放在哪里?我应该为它们创建一个新目录,例如库?
我应该在模型函数中实例化Controller中的类吗?
<?PHP class Controller { protected function model($model) { require_once('../app/models/'. $model .'.PHP'); return new $model(); } protected function view($view,$data = []) { require_once '../app/views/'. $view .'.PHP'; } }
Where would I put my other class files (Database,User,Logger,Mailer,etc)? Should I create a new directory for them,e.g.
libs
?
将它们放在单独的文件中,因为它们都提供不同的功能应该没问题.您的目录命名没有区别 – 只要它符合您的项目或一般的命名约定(可能,甚至更好).
Should I instantiate the classes in the Controller inside the model function?
不,据我所知,流程可能类似于:
>索引文件接收请求并启动新的引导实例> bootstrap设置throwable处理程序和路由器>然后路由器根据请求方法调用相应的方法,并通过匹配一组路由提供uri>匹配路由初始化MVC三元组的所有组件和可调用方法.组件(模型层,视图层和控制器层)将传递给路由器调用的方法.在我的例子中,我调用类FrontController,方法init.>基本上,init是实际制作MVC三元组的地方.模型层负责业务逻辑,持久性等.重要的是要注意Model不是单个文件或类(对于View和Controller来说是相同的). View层和Controller层都参考Model层来执行相应的操作.视图层的任务是管理输出,例如,决定输出将具有应用程序的内容类型/ json或text / plain,或者要呈现的模板.此外,视图不是模板,用于显示数据.请注意,视图直接从Model层询问必要的数据;没有任何与Controller层的交互.最后,当需要交互时,Controller层会进入,用户提交表单,相应的Controller过滤输入并从Model层调用方法.