Laravel 學(xué)習(xí) 第一天

今天主要的學(xué)習(xí)任務(wù)有以下

安裝

安裝Composer

Compser是PHP依賴管理工具,

curl -sS https://getcomposer.org/installer | php

如果提示HTTPS證書(shū)問(wèn)題可以改用如下命令行安裝以忽略證書(shū)

curl -k https://getcomposer.org/installer | php

安裝完Composer后,使用Composer來(lái)安裝laravel

php composer.phar global require "laravel/installer=~1.1"

安裝完成后將laravel加到PATH路徑中,在MAC上修改PATH變量 。

添加完了后就可以使用一下命令在當(dāng)前目錄下創(chuàng)建項(xiàng)目了。

laravel new Project_Name

laravel 要求PHP版本大于等于5.4

在Laravel 5中調(diào)整public文件夾的名稱為public_html

/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
|
| We need to illuminate PHP development, so let us turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight our users.
|
*/

$app = require_once __DIR__.'/../bootstrap/app.php';

// set the public path to this directory
$app->bind('path.public', function() {
    return __DIR__;
});

all set, let's start building

Let's start coding

配置

所有和應(yīng)用相關(guān)的配置都保存在config文件夾中

讀取Config變量

$value = Config::get('app.timezone'); // 可以通過(guò)外觀模式來(lái)讀寫(xiě)Config里定義的變量
Config::set('app.timezone', 'America/Chicago');
$value = config('app.timezone'); // 也可以通過(guò)幫助函數(shù)來(lái)讀取Config的值

storagevendor文件夾需要寫(xiě)權(quán)限

修改namespace的名稱可以使用如下命令行

php artisan app:name Car

維護(hù)模式 - 這個(gè)可以有

php artisan down
php artisan up

維護(hù)期間的提示頁(yè)模板 resources/views/errors/503.blade.php

在項(xiàng)目根目錄下有一個(gè).env文件,在這里定義的所有常量都可以通過(guò)$_ENV 訪問(wèn)。工程師各自的開(kāi)發(fā)環(huán)境會(huì)有不同,所以這個(gè)文件最好不要提交到SourceControl中。

獲取并檢測(cè)當(dāng)前應(yīng)用的環(huán)境

$environment = app()->environment(); // helper function 
$environment = App::environment(); // app facade

if ($app->environment('local')) {// The environment is local}
if ($app->environment('local', 'staging')){ // The environment is either local OR staging...}

MARK 文檔里有下面一句沒(méi)有看懂什么意思,估計(jì)等到學(xué)Service Container的時(shí)候會(huì)搞明白

To obtain an instance of the application, resolve the Illuminate\Contracts\Foundation\Application
contract via the service container.

The Basics

Routing

Laravel的路由做的還是很優(yōu)雅的,用這套路由機(jī)制做RESTful API實(shí)在是太爽了(相比CI)

路由分組

這是個(gè)很方便的工具,可以對(duì)多個(gè)路由分組,將

Middleware

這貨讓我想起了很久之前.net framework里的http handler。。。
所有的middleware都存在App/Http/Middleware/這個(gè)文件夾中

創(chuàng)建Middleware

執(zhí)行下面的語(yǔ)句來(lái)創(chuàng)建新的Middleware

php artisan make:middleware ImageFetcher

執(zhí)行成功會(huì)在middleware的文件夾中多一個(gè)ImageFetcher.php的文件。

<?php namespace App\Http\Middleware;

use Closure;

class ImageFetcher {

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
            // Perform action before request is handled by app
            $response = $next($request);
            // Perform action after request is handled by app
        return $response;
    }
}

注冊(cè)

Middleware做完了之后需要注冊(cè)到應(yīng)用中去,app/Http/這個(gè)文件夾下有Kernal.php文件,全局的middleware注冊(cè)在$middleware變量中;如果是要給某個(gè)特定的Route綁定使用的middleware,注冊(cè)在$routeMiddleware這個(gè)變量中。

 Route::get('admin/profile', ['middleware' => 'auth', function(){
    // do the shit here
}]);

可結(jié)束的Middleware

有的操作需要在http請(qǐng)求被處理之后才可以做,例如Session要在http請(qǐng)求結(jié)束后才會(huì)往客戶端寫(xiě)數(shù)據(jù)。碰到這種情況,將middleware聲明為T(mén)erminableMiddleware,在termintate這個(gè)函數(shù)中進(jìn)行http請(qǐng)求完成后的操作。

use Closure;
use Illuminate\Contracts\Routing\TerminableMiddleware;

class StartSession implements TerminableMiddleware {

    public function handle($request, Closure $next)
    {
        return $next($request);
    }

    public function terminate($request, $response)
    {
        // Store the session data...
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文鏈接 必備品 文檔:Documentation API:API Reference 視頻:Laracasts ...
    layjoy閱讀 8,708評(píng)論 0 121
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • 0.1配置1.模板繼承2.控制器3.git4.支付寶支付的流程5.路由6.中間件7.請(qǐng)求8.laravel 學(xué)習(xí)筆...
    云龍789閱讀 884評(píng)論 0 5
  • 先說(shuō)幾句廢話,調(diào)和氣氛。事情的起由來(lái)自客戶需求頻繁變更,偉大的師傅決定橫刀立馬的改革使用新的框架(created ...
    wsdadan閱讀 3,193評(píng)論 0 12
  • 迎著朝陽(yáng) 追著月光 想這樣遠(yuǎn)走他鄉(xiāng) 捧著書(shū)卷 寫(xiě)著筆記 想這樣必成大器 望著燈光 嘆著熱氣 想這樣長(zhǎng)眠不起 記著親...
    泊楊閱讀 234評(píng)論 0 1

友情鏈接更多精彩內(nèi)容