图片 1

中创建服务,Laravel入门及实践

本文由码农网 –
任琦磊原创翻译,转发请看清文末的转载须要,应接参加我们的付费投稿安顿!

【摘要】自从社交系统ThinkSNS+不行使ThinkPHP框架而采用Laravel框架之后,比相当多个人都在说技巧门槛抬高了,其实你与TS+的间距仅仅只是学习四个新框架而已,所以,大家前几日以来讲Laravel的入门。

路由和调整器的关系

那是豆蔻梢头份面向初学者的 Laravel 5.1 中创设 Service Provider 的课程。

温馨提示:

路由文件地方在\app\Http\routes.php,大家来看两种不相同的路由。

自己在投机过去的博客中涉及了自个儿喜爱 Laravel
5.1 的结构,特别是它引进了ServiceProvider,进而令你模块化的创设利用成为了说不佳。应用的配置平常大概产生老魔难的天职,完全在于你正在采纳的框架,但有幸的是,大家正在使用的 Laravel 让这事变得一定轻便。

l正文纯干货,文字和代码居多,且切合零底蕴Laravel学习者;

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


Route::get('/hi', function () {
    return 'hello world';
});

图片 1

l正文少禽新建二个名称为 blog 的 Laravel 程序,那是一个特别简单的博客。

如上均为绑定无名氏函数的路由,即便能够重临视图,也可以回来字符串,但精气神都以如出生机勃勃辙的。

故此让大家最初创办三个用以演示的路由(route)。到 app/Http/routes.php中加多上边这条路由:

l应接任何时候关注ThinkSNS+的研究开发动态,有产物难题、优化提议、售前咨询、售后咨询、本领援救都足以问问QQ3298713109,手提式无线电话机18108035545(同微信)。

Route::get('/blog','BlogController@index');
Route::get('/post/{slug}','BlogController@showPost');
Route::resource('demo', 'DemoController');

正文主要内容:

那二种是绑定调控器的路由,调控器类BlogController下有七个函数,index和showPost,可以调用。

由此接受 Route::resource,我们就赢得了约定义好的 index,show,create,edit,update,store 和 destroy 路由。

·新建 Laravel 程序,如何连接数据库;

那么难题来了,毕竟应当采纳哪类?

为了得以完毕优质的对称性,以往我们得以采纳 artisan 命令行工具来为大家创制对应的调整器(controller)。键入如下指令:

·Laravel 程序的主导文件布局;

您不大概把纷纭的业务逻辑都写在贰个佚名函数里,所以你要学会新建调节器。

php artisan make:controller DemoController

·MVC(模型,视图,调整器)和 REST 构造的基本原理;

Route::get('/mvc', 'MyController@hello');  

让我们开发创制好的公文,将 index 方法纠正为如下内容:

·如何迅快速生成成 Laravel 程序骨架;

大器晚成.增添新调整器

public function index()
{
    return view('demo.index');
}

学习Laravel前提:您必须要是会PHP语言的次第技艺人士,不然,应先学习PHP语言,再学习laravel框架,最终,才具上手社交系统ThinkSNS+的一遍开垦,以下是或然行使到的能源:

调控器文件夹地址在Laravel文件夹下\app\Http\Controllers,大家世袭应用artisan调整台创设二个新调控器

以后让大家后续在 app/Resources/views 目录下开创一个名叫 德姆o 的文件夹,并在文件夹中创建叁个名称为 index.blade.php 的视图(view)文件,内容如下:

·PHP 5.4 及以上版本

php artisan make:controller MyController
@extends('layouts.master')

@section('content')
<h1>Demo Page</h1>
@endsection

·包管理工具 Composer。Composer指南官方网站:https://getcomposer.org/,
中文网:http://www.phpcomposer.com/

下一场,回到调整器目录,后生可畏份新的MyController.php文件被创设了,代码如下:

其生机勃勃例子中大家正在调用三个自己早就在 layouts 文件夹中创立了的 master 页面master.blade.php。借使您的 master 用了另一个名字,那么这里您得替换掉。如果您未曾 master 页面,那么就删掉第风流浪漫行 extends 的全体内容,包蕴 @sectioin 注明。

·SQLite3 数据库

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class MyController extends Controller
{
    //
}

若果你已经陈设好了您的开采条件并解析了你的域名,那么当你拜会路由yourapplication.com/demo,你应有能够看见内容 德姆o
Page 了。

·PHP 语言官网:http://php.net/

大家校勘MyController类,同一时候再次创下制贰个视图。

好的,那么现在就让大家来创设一个Service Provider。那么些ServiceProvider不会做太多特别有效的作业。它只是用来向你显得什么搭建它。

一、新建 Laravel 程序

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class MyController extends Controller
{
    public function hello()
    {
        return View('myview');
    }
}

让大家在 app 目录下创建三个 Helpers 文件夹。然后在 Helpers 文件夹里,创设二个 Contracts 文件夹。在 Contracts 文件夹里,创立文件罗克etShipContract.php 并写入上边包车型地铁源委:

文中的示范代码应用 $ 表示命令行提示符,你的唤醒符恐怕改造过,所以会不一致等。在 Windows 中,提示符恐怕是 c:\source_code>。

若果那样写,就代表尽管客商访谈URubiconL:laravel/public/mvc,路由就能够付给MyController调节器的hello函数,hello函数再次回到myview视图,即重回myview.blade.php

<?php

namespace App\Helpers\Contracts;

Interface RocketShipContract
{

    public function blastOff();

}

1、安装 Laravel

 大家看看myview.blade.php的代码

正如您所知,接口(interface)是大器晚成种用来深化构造的合同(contract)。为了定义类的接口,它必需含知名称叫 blastOff 的公共函数(public
function)。

开采命令行,跟着以下步骤实行下文中有所以 $ 最早的代码命令。

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-10 col-md-offset-1">
            <div class="panel panel-default">
                <div class="panel-heading">{{ $d1 }}</div>

                <div class="panel-body">
                    this is my view!
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

之所感觉什么要困苦地成立二个协议呢?其实,Laravel 有三个玄妙的成效是你能够类型提示左券,ServiceProvider会再次来到二个受它封锁的具体类的实例。这得以实现了独步一时的灵活性和松耦合的布局,因为您的办事将得以轻便地经过生龙活虎行代码来成功。大家就要看见那是如何行事的。

l先确认是或不是安装了 PHP 5.4 如故以上的版本:

此间的{{ $d1
}}希望用三个变量的值来代替,所以,大家把MyController调控器改良为

首先,让大家创制二个具体类。在 app/Helpers 文件夹中,创立罗克etShip.php,代码如下:

比如您还未设置 PHP,请访问http://php.net/,先安装PHP。

class MyController extends Controller
{
    public function hello()
    {
        return View('myview',['d1'=>'a1']);
    }
}
<?php

namespace app\Helpers;

use App\Helpers\Contracts\RocketShipContract;

class RocketShip implements RocketShipContract
{

    public function blastOff()
    {

        return 'Houston, we have ignition';

    }

}

l然后,确认是否在 PATH 中: