当前位置: 首页 > 后端技术 > PHP

构建类Laravel的Mvc框架——模型(Model)

时间:2023-03-29 16:54:05 PHP

接上一篇文章构建类Laravel的Mvc框架——Route,接下来介绍如何在框架中构建模型层(model)。上一篇的案例都是把代码写在路由闭包里面。如果路由定义过多,维护和管理起来非常困难。所以我们首先需要实现一个Controller来处理我们的业务逻辑,也就是在Mvc的C层。建立controller,首先参考Laravel目录结构,创建我们的controller文件mkdirApp/Http/Controllers/IndexControllerIndexController创建完成后,编写相关函数处理首页的逻辑。get('/index','App\Http\Controllers\IndexController@index');最后更改composer.json,配置autoload路径,然后执行composerdump-autoload{"name":"17ns/laramvc","authors":[{"name":"17ns","email":"aa@bb.com"}],"require":{"illuminate/routing":"*","illuminate/events":"*"},"autoload":{"psr-4":{"App\\":"app/"}}}添加模型组件完成以上步骤后,开始添加illuminate/database组件,实现像Laravel一样强大的ORM。执行以下命令开始导入组件composerrequire"illuminate/database":"*"导入完成后会完善数据库的配置。这里我们还是参考laravel创建一个config/database.php文件作为数据库连接的配置文件。建立完成后,开始填写本地或远程服务器的MYSQL配置信息。'mysql','host'=>'localhost','database'=>'laramvc','username'=>'root','password'=>'localdb001','charset'=>'utf8','collat??ion'=>'utf8_general_ci','prefix'=>'',];配置完成后,需要在首页入口文件中启动EloquentORM,相关代码如下:useIlluminate\Routing\RoutingServiceProvider;useIlluminate\Database\Capsule\Manager;//首页入口//调用自动加载文件require__DIR__。'/。./vendor/autoload.php';//实例化服务容器,注册事件服务提供者和路由服务提供者$app=newContainer;with(newEventServiceProvider($app))->register();with(newRoutingServiceProvider($app))->register();//启动EloquentORM模块进行配置$dbManager=newManager();$dbManager->addConnection(require'../config/database.php');$dbManager->bootEloquent();//加载路由配置require__DIR__.'./../app/Http/routes/routers.php';//实例化请求并分发处理请求$request=Request::createFromGlobals();$response=$app['router']->dispatch($request);//返回响应请求$response->send();上面的DBManager会在config/database.php添加数据库连接后,通过bootEloquent函数启动EloquentORM创建Model。以上步骤无误后,开始创建Model文件。这里,还是参考Laravel,创建一个App/User.php