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

构建类Laravel的Mvc框架——路由

时间:2023-03-30 00:26:40 PHP

在我们日常使用Laravel框架中,有很多设计理念和开发思路值得学习,如何让代码更“优雅”,核心架构中的组件化,服务容器,数据库ORM是值得探索的一两个方向。在这一系列的博客中,我们将使用Laravel的组件化特性来构建一个迷你的类LaravelMVC框架。本文的应用主要讲述如何使用illuminate/routing实现框架的路由模块,通过配置的定义实现请求的转发和跳转。1.初始化一个新项目首先创建一个项目,名字随便定义,这里我使用的是laramvcmkdirlaramvc然后创建一个composer.json文件,填充如下内容:{"name":"yourprojectname","authors":[{"name":"AuthorName","email":"AuthorEmail"}],"require":{}}执行composerupdate生成vendor目录并自动加载文件。composerupdate执行完成后,我们仿照Laravel,在项目下创建app和public目录,用于存放项目的核心业务逻辑,并对外提供访问逻辑。mkdirapp&&mkdirpublic2.添加路由组件执行以上步骤后,我们开始添加路由组件illuminate/routing,但是这个组件依赖于另外一个组件illuminate/events组件,所以需要将这两个组件一起引入。执行composer操作如下:composerrequire"illuminate/events":"*"composerrequire"illuminate/routing":"*"引入完成后,我们参考laravel创建路由定义文件app/Http/routes/routers.phpget('/',function(){echo'欢迎使用laramvc';});定义好路由后,继续参考laravel创建一个外部访问交集文件public/index.phpindex.php文件内容如下:register();with(newRoutingServiceProvider($app))->register();//加载路由配置require__DIR__.'./../app/Http/routes/routers.php';//实例化请求并分发处理请求$request=Request::createFromGlobals();$response=$app['router']->dispatch($request);//返回响应请求$response->send();写好之后就可以测试运行了,运行本例中使用nginx进行配置。3、nginx部署完成以上步骤后,添加nginx配置,然后重启nginx即可部署成功。服务器{听80;//端口服务器名称本地主机;//域名根目录/data/www/laramvc/public/;//项目路径位置/{try_files$uri$uri//index.php?$query_string;if(!-e$request_filename){最后重写^/(.*)/index.php;}indexindex.htmlindex.htmindex.php;包括/usr/local/etc/nginx/conf.d/php-fpm;}}运行成功效果如下,方便大家利用laravel组件化轻松自定义一个