添加路由文件,Laravel最佳分割路由文件

 在laravel 5.4中的routes文件夹里面私自认同有多个路由文件web.php和api.php。

不久前做项目用到了laravel框架,所以决定此前端的角度对laravel进行了有的上学和小结。

Laravel的路由效率很强大,私下认同都以概念在routes.php文件中,随着项目更是大,我们须要的概念的路由越来越多,想象一下,如若几百上千个路由都定义在1个文书中,怎样去维护?可能还有分化的人都在同壹个文本定义路由,那就导致了争持,因而我们要求分割routes.php文件,下边介绍一种很优雅的点子。

前言

 

laravel简介

1、laravel是php框架
贰 、具有评释、路由、session、缓存、数据库迁移工具、单元测试等常用的工具和成效

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

Laravel 的路由作用很强大,暗中认同都以概念在 routes.php
文件中,随着项目越来越大,大家须要的概念的路由越来越多,想象一下,假使几百上千个路由都定义在多个文本中,怎么着去维护?只怕还有差别的人都在同1个文件定义路由,这就招致了争执,因而大家需求分割
routes.php 文件。

新建路由文件

大家在routes文件夹下多创制二个admin.php文件作为管理后台的路由

laravel使用

① 、开发条件

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搭建环境

美高梅开户网址 1

xampp

上图XAMPP安装后XAMPP文件夹下文件目录
2、下载
壹 、直接下载地址:http://www.golaravel.com/download/
贰 、本文案例使用5.2本子
③ 、运营XAMPP,下载的装置包解压,解压后的文件夹整个放入htdocs目录下
四 、在浏览器中输入http://localhost:82/laravel/public/,82是本人设置的端口,暗中认可端口是80
⑤ 、假诺不出错可以看来以下内容

美高梅开户网址 2

laravel5

美高梅开户网址,3、目录

美高梅开户网址 3

添加路由文件,Laravel最佳分割路由文件。laravel目录

壹 、app包蕴应用程序的主干代码
ps:MVC中的C,即controller放在app文件夹下的http文件夹中
② 、bootstrap目录包括框架运营和活动加载配置的公文
叁 、config包含全数应用程序的安插文件,eg:缓存,数据库,邮件,队列,session,视图and
so on。
肆 、database,数据库迁移与数据填充文件
五 、storage放一些编译后生成的文件
陆 、tests测试相关
柒 、vendor放置一些依靠模块
八 、public文件夹放一些公用的css,js,image图片等
九 、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框架新建页面流程

壹 、什么是路由
路由:当用户访问多个UPRADOL地址时,浏览器请求相应的页面,那其中路由决定着财富和U本田UR-VI的相应关系。
在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等各样艺术
二 、新建控制器
控制器负责从视图读取数据、控制用户输入、并且像模型发送数据
在laravel中新建控制器要求在Http/Controllers文件夹下,新建二个控制器文件。

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

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

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

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

浏览器访问就足以看看网页中输出week。
叁 、新建视图
前边已经提到过视图页面放在resources/views/下
新建步奏
一 、在该公文夹下新建二个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');
});

四 、新建模型
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艺术中可以如下概念:

美高梅开户网址 4

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);
    }
  });
}

这么它会遍历app/Http/Routes/文件夹下的文书,遍历各种文件路由类的map方法,每种文件的布局都好像,如下:

文件协会结构图如下:

美高梅开户网址 5

美高梅开户网址 6

把路由规则都写到每一个文件的map方法中,这样一来,就贯彻了很好的routes.php文件的诀别管理。其余,你也可以简简单单的分开,直接把routes.php中的定义拆散成七个文本,通过
require 的方法引入,然则哪位更好,一目了解。

那般它会遍历 app/Http/Routes/ 文件夹下的公文,遍历各个文件路由类的
map措施,逐个文件的社团都类似,

那么这么路由暌违五个文本后岂不是扩大调用次数,会不会影响属性?答案是不要顾虑。通过
Laravel 的一声令下:

举个例证:

php artisan route:cache

<?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']);
    });
  }
}

生成路由缓存文件后,路由只会读取缓存文件的路由规则,由此不会潜移默化属性,那样做让开发更高效和专业。

把路由规则都写到各个文件的 map主意中,那样一来,就落到实处了很好的
routes.php 文件的离别管理。别的,你也可以简不难单的划分,直接把
routes.php 中的定义拆散成两个文件,通过
require的方法引入,但是哪位更好,一目通晓。

这就是说那样路由暌违三个文件后岂不是增添调用次数,会不会影响属性?答案是不必顾虑。通过
Laravel 的命令:

php artisan route:cache

生成路由缓存文件后,路由只会读取缓存文件的路由规则,因而不会影响属性,那样做让开发更飞快和业内。

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

你大概感兴趣的稿子:

  • 有关Laravel
    Route重定向的2个注意点
  • Laravel中拿到路由参数Route
    Parameters的八种办法言传身教

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图