【www.5929.com】Laravel最佳分割路由文件,添加路由文件

 在laravel 5.4中的routes文件夹里面默许有多少个路由文件web.php和api.php。

新近做项目用到了laravel框架,所以决定在此从前端的角度对laravel举办了一些学学和小结。

前言

Laravel的路由成效很强劲,默许都是概念在routes.php文件中,随着项目越发大,大家要求的定义的路由越多,想象一下,若是几百上千个路由都定义在一个文本中,怎么样去维护?也许还有差距的人都在同一个文书定义路由,那就造成了争辩,因而大家必要分割routes.php文件,上边介绍一种很优雅的办法。

 

laravel简介

1、laravel是php框架
2、具有验证、路由、session、缓存、数据库迁移工具、单元测试等常用的工具和效应

Laravel 的路由功用很强大,默许都是概念在 routes.php
文件中,随着项目进一步大,大家要求的定义的路由越来越多,想象一下,假设几百上千个路由都定义在一个文件中,如何去保养?也许还有分裂的人都在同一个文书定义路由,那就造成了争辩,由此我们需求分割
routes.php 文件。

在app/Providers/RouteServiceProvider.php的map方法中可以如下概念:

新建路由文件

大家在routes文件夹下多成立一个admin.php文件作为管理后台的路由

laravel使用

1、开发条件

1.对php版本的渴求

laravel版本 PHP版本
5.1、5.2 5.5.9+
4.2 5.4+
4.1 5.3.7+

ps:laravel宣布的第三个LTS(long time
support)版本是5.1,指出使用5.1以上版本

2.Windows系统下行使的是XAMPP搭建环境

www.5929.com 1

xampp

【www.5929.com】Laravel最佳分割路由文件,添加路由文件。上图XAMPP安装后XAMPP文件夹下文件目录
2、下载
1、直接下载地址:http://www.golaravel.com/download/
2、本文案例使用5.2本子
www.5929.com,3、启动XAMPP,下载的设置包解压,解压后的文件夹整个放入htdocs目录下
4、在浏览器中输入http://localhost:82/laravel/public/,82是自己设置的端口,默许端口是80
5、假使不出错能够看到以下内容

www.5929.com 2

laravel5

3、目录

www.5929.com 3

laravel目录

1、app包罗应用程序的骨干代码
ps:MVC中的C,即controller放在app文件夹下的http文件夹中
【www.5929.com】Laravel最佳分割路由文件,添加路由文件。2、bootstrap目录包蕴框架启动和电动加载配置的文本
3、config包涵所有应用程序的布署文件,eg:缓存,数据库,邮件,队列,session,视图and
so on。
4、database,数据库迁移与数据填充文件
5、storage放一些编译后生成的文本
6、tests测试相关
7、vendor放置一些借助模块
8、public文件夹放一些公用的css,js,image图片等
9、resources放一些模板,视图文件

4、写一个Hello World
在装置时大家早已看到过laravel5,这么些页面是laravel框架的默许welcome页,该页面格局resources文件夹上面的views文件夹中,文件名叫做welcome.blade.php,打开该公文将Laravel
5改为Hello World!
刷新页面done~

上面介绍一种很优雅的艺术。

public function map(Router $router){

         
$router->group([‘namespace’=>$this->namespace],function($router)
{

                      foreach(glob(app_path(‘Http//Routes’)
.’/*.php’) as $file) {

                             
$this->app->make(‘App\\Http\\Routes\\’.
basename($file,’.php’))->map($router);

                      }

          });

}

修改RouteServiceProvider.php

 

    protected function mapAdminRoutes()
    {
        Route::middleware('web')
        ->namespace($this->namespace)
        ->group(base_path('routes/admin.php'));
    }

  

 public function map()
    {
        $this->mapApiRoutes();

        $this->mapWebRoutes();

        $this->mapAdminRoutes(); //添加上一部的方法

        //
    }

  

laravel框架新建页面流程

1、什么是路由
路由:当用户访问一个URL地址时,浏览器请求相应的页面,那其中路由控制着资源和URI的相应关系。
在laravel中路由文件routes.php用于放在app/Http/下。上节例子中Hello
world写在welcome.blade.php文件中,该公文位于laravel项目的根目录下,因而打开routes.php文件可以看来相应的路由是

Route::get('/', function () {
    return view('welcome');
});

那段代码Route路由使用get方法,在根目录下回到一个视图,该视图就是放在resources下的views文件夹下的welcome文件。
写个小页面
在resources/views/下新建monday.blade.php文件,里面写‘后天周六’,在routes.php文件中写上以下代码

Route::get('monday', function () {
    return view('monday');
});

浏览器中走访http://localhost:\*\*/laravel/public/monday
能够看看刚刚效果。
ps:路由的伏乞方法有多重,get只是里面的一种,除此之外还有post,put,delete等多样艺术
2、新建控制器
控制器负责从视图读取数据、控制用户输入、并且像模型发送数据
在laravel中新建控制器必要在Http/Controllers文件夹下,新建一个控制器文件。

新建步奏
1、在Http/Controllers文件夹下新建一个php文件命名为WeekController.php
在该公文中输入以下代码

<?php
namespace App\Http\Controllers;
use App\Week;
// 声明命名空间
// 创建一个类WeekController继承自控制器基类
class WeekController extends Controller
{
    // 写一个方法
    public function week()
    {
        return 'week';
    }
}

2、将控制器与路由相关联
在routes.php中添加以下代码

Route::get('week','WeekController@week');

浏览器访问就足以见到网页中输出week。
3、新建视图
前边已经提到过视图页面放在resources/views/下
新建步奏
1、在该公文夹下新建一个week.blade.php文件,敲入

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>新建视图</title>
</head>
<body>
    今天星期四
</body>
</html>

2、打开routes.php文件,敲入

Route::get('weekdemo',function(){
    return view('week');
});

4、新建模型
laravel中模型是直接放在App目录下,模型是应用程序的中央部分,模型是对作业数据的卷入用于落到实处工作逻辑。
在App目录下有一个默许的model叫做User.php。当大家须要树立协调的模狗时得以新建一个自己的php文件,比如新建一个week.php。
里面会有上边三行代码

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;

和控制器相似这一个也是对命名空间的注解
下一场敲入如下代码

class Week extends Model
{
    public static function getWeek(){
        return 'today is monday';
    }
}

然后选拔时在控制器中的week方法里return Week::getWeek();即可。

app/Providers/RouteServiceProvider.php
map主意中可以如下概念:

文件社团结构图如下:

public function map(Router $router)
{
  $router->group(['namespace' => $this->namespace], function ($router) {
    //require app_path('Http/routes.php');
    foreach (glob(app_path('Http//Routes') . '/*.php') as $file) {
      $this->app->make('App\\Http\\Routes\\' . basename($file, '.php'))->map($router);
    }
  });
}

www.5929.com 4

文件社团结构图如下:

如此那般它会遍历app/Http/Routes/文件夹下的文件,遍历每个文件路由类的map方法,每个文件的协会都类似,如下:

www.5929.com 5

www.5929.com 6

如此它会遍历 app/Http/Routes/ 文件夹下的文本,遍历每个文件路由类的
map方法,每个文件的结构都就像,

把路由规则都写到每个文件的map方法中,那样一来,就贯彻了很好的routes.php文件的离别管理。其余,你也得以大约的分割,直接把routes.php中的定义拆散成七个文件,通过
require 的格局引入,不过哪位更好,一目了解。

举个例证:

这就是说那样路由分手三个文本后岂不是增添调用次数,会不会潜移默化属性?答案是不用担心。通过
Laravel 的吩咐:

<?php
/**
 * Created by PhpStorm.
 * User: xl
 * Date: 2016/7/4
 * Time: 18:07
 */
namespace App\Http\Routes;

use Illuminate\Contracts\Routing\Registrar;

class HomeRoutes
{
  public function map(Registrar $router)
  {
    $router->group(['domain' => 'www.tanteng.me', 'middleware' => 'web'], function ($router) {
      $router->auth();
      $router->get('/', ['as' => 'home', 'uses' => 'IndexController@index']);
      $router->get('/blog', ['as' => 'index.blog', 'uses' => 'BlogController@index']);
      $router->get('/resume', ['as' => 'index.resume', 'uses' => 'IndexController@resume']);
      $router->get('/post', ['name' => 'post.show', 'uses' => 'ArticleController@show']);
      $router->get('/contact', ['as' => 'index.contact', 'uses' => 'IndexController@contact']);
      $router->post('/contact/comment', ['uses' => 'IndexController@postComment']);
      $router->get('/travel', ['as' => 'index.travel', 'uses' => 'TravelController@index']);
      $router->get('/travel/latest', ['as' => 'travel.latest', 'uses' => 'TravelController@latest']);
      $router->get('/travel/{destination}/list', ['as' => 'travel.destination', 'uses' => 'TravelController@travelList']);
      $router->get('/travel/{slug}', ['uses' => 'TravelController@travelDetail']);
      $router->get('/sitemap.xml', ['as' => 'index.sitemap', 'uses' => 'IndexController@sitemap']);
    });
  }
}

php artisan route:cache

把路由规则都写到每个文件的 map情势中,那样一来,就落成了很好的
routes.php 文件的分离管理。其余,你也可以大致的细分,直接把
routes.php 中的定义拆散成多少个文件,通过
require的方法引入,可是哪位更好,一目掌握。

生成路由缓存文件后,路由只会读取缓存文件的路由规则,因而不会潜移默化属性,那样做让开发更急迅和规范。

那就是说如此路由暌违多个公文后岂不是扩张调用次数,会不会潜移默化属性?答案是不要顾虑。通过
Laravel 的命令:

php artisan route:cache

生成路由缓存文件后,路由只会读取缓存文件的路由规则,由此不会影响属性,那样做让开发更便捷和规范。

好了,以上就是Laravel路由文件(routes.php)最佳分割格局的全体内容,希望对大家学习Laravel有所帮忙。也目的在于大家多多协助脚本之家。

您可能感兴趣的小说:

  • 有关Laravel
    Route重定向的一个注意点
  • Laravel中得到路由参数Route
    Parameters的各样方法言传身教

Leave a Comment.