成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

[譯] Laravel 5 之美 - 單元測試

fuyi501 / 2739人閱讀

摘要:事實(shí)上,這是討論測試的惟一一章。因此,在中沒有單一的測試方法。包含了這是的標(biāo)準(zhǔn)強(qiáng)調(diào)業(yè)務(wù)或特性測試是最流行的框架。然后我們在這個(gè)項(xiàng)目中使用進(jìn)行單元測試。在隨后的章節(jié)中,將不再進(jìn)行測試。

原文地址: Laravel 5.1 Beauty - Testing

Note 本系列第四節(jié)內(nèi)容.

本章會(huì)創(chuàng)建一個(gè)以后可以用到的項(xiàng)目便于以后我們的課程使用, 同時(shí)也會(huì)查課各種測試選項(xiàng). 以后一段時(shí)間內(nèi)會(huì)開發(fā)一個(gè) Markdown 文本轉(zhuǎn)換成 Html 的服務(wù)信息.

創(chuàng)建 l5beauty 項(xiàng)目

根據(jù)之前的章節(jié) Six Steps to Starting a New Laravel 5.1 Project 創(chuàng)建 l5beauty 項(xiàng)目下面所示項(xiàng)目

首先在你的系統(tǒng)安裝 app 框架

Step 1 - 安裝項(xiàng)目框架
$ laravel new l5beauty
Crafting application...
Generating optimized class loader
Compiling common classes
Application key [rzUhyDksVxzTXFjzFYiOWToqpunI2m6X] set successfully.
Application ready! Build something amazing.

接下來設(shè)置 l5beauty.app 作為虛擬主機(jī).

Step 2 - 配置服務(wù)器
$ serve l5beauty.app ~/l5beauty/public
dos2unix: converting file /vagrant/scripts/serve.sh to Unix format ...
 * Restarting nginx nginx                                                [ OK ]
php5-fpm stop/waiting
php5-fpm start/running, process 2169

回到主機(jī), 添加以下記錄到映射文件

Step 3 - 添加 l5beauty.app 到映射文件
192.168.10.10  l5beauty.app

從主機(jī)中, 按照以下步驟安裝 NPM 本地包

Step 4 - NPM 本地安裝
$ cd l5beauty
$ npm install
|
> node-sass@2.0.1 install /Users/chuck/Code/l5beauty/node_modules/laravel-
    elixir/node_modules/gulp-sass/node_modules/node-sass
> node scripts/install.js

> node-sass@2.0.1 postinstall /Users/chuck/Code/l5beauty/node_modules/
    laravel-elixir/node_modules/gulp-sass/node_modules/node-sass
> node scripts/build.js

`darwin-x64-node-0.10` exists; testing
Binary is fine; exiting
gulp@3.8.11 node_modules/gulp
├── v8flags@2.0.2
├── pretty-hrtime@0.2.2

[snip]

回到主機(jī), 創(chuàng)建數(shù)據(jù)庫

Step 5 - 創(chuàng)建應(yīng)用數(shù)據(jù)庫
$ mysql --user=homestead --password=secret
mysql> create database l5beauty;
Query OK, 1 row affected (0.00 sec)

mysql> exit;
Bye

編輯 .env 文件, 修改數(shù)據(jù)庫為 l5beauty.

Step 6 - 更改配置文件中的 DB_NAME
// Change the following line
DB_DATABASE=homestead

// To the correct value
DB_DATABASE=l5beauty

最后, 訪問 http://l5beauty.app , 確保一切可用.

Figure 6.1 - Step 5 - 在瀏覽器中測試

運(yùn)行 PHPUnit

Laravel 5.1 已經(jīng)準(zhǔn)備好測試了, 有個(gè)最簡單的方式來檢測一個(gè)訪問是否返回200響應(yīng).

運(yùn)行 PHPUnit , 簡單的在根目錄上執(zhí)行 phpunit就OK

運(yùn)行 PHPUnit
$ cd l5beauty
~/l5beauty $ phpunit
PHPUnit 4.7.4 by Sebastian Bergmann and contributors.

Time: 544 ms, Memory: 10.25Mb

OK (1 test, 2 assertions)
是否有錯(cuò)誤 ?

如果你在運(yùn)行 phpunit 收到 command not found 或者 permissions denied 錯(cuò)誤提示, 有可能是因?yàn)榘惭b問題. phpunit 命令一般會(huì)存放在 vendor/bin 目錄并且添加進(jìn)系統(tǒng)變量, 問題是 Laravel 命令有一個(gè)bug是沒有給這個(gè)命令設(shè)置相應(yīng)的權(quán)限

使用如下方法解決這個(gè)問題:

Step 1 - 刪除 vendor 目錄

Step 2 - 在代碼根目錄使用 composer update 命令重新創(chuàng)建 vendor 目錄. (操作系統(tǒng)中運(yùn)行)

這樣, 然后重新執(zhí)行 phpunit

Laravel 5.1 PHPUnit 配置

在 Laravel 5.1 項(xiàng)目根目錄中有個(gè)文件 phpunit.xml. 這個(gè)文件包含使用 phpunit 運(yùn)行時(shí)候的配置

phpunit.xml的測試會(huì)放置在 tests 目錄, 這里有兩個(gè)文件

ExampleTest.php - 包含一個(gè)測試方法 testBasicExample(). 這個(gè) ExampleTest 類集成自 TestCase 類.

TestCase.php - Laravel 基礎(chǔ)測試單元.

查看 testBasicExample() 方法 ExampleTest.php.

testBasicExample() 方法
  public function testBasicExample()
  {
    $this->visit("/")
         ->see("Laravel 5");
  }

這個(gè)測試告訴我們 "訪問主頁并且能夠看到內(nèi)容 ‘Laravel 5’", 還能比這個(gè)更簡潔么 ?

TestCase 類提供在框架中的應(yīng)用方法和屬性. TestCase 同樣提供了一個(gè)附加斷言列表方法和 crawler 類型測試

Laravel 5.1 Crawler 方法和屬性

Crawler 允許你測試web應(yīng)用. 這些方法都有個(gè)統(tǒng)一的優(yōu)點(diǎn)就是都能夠返回 $this , 允許你創(chuàng)建 ->visit()->see() 類似這樣的鏈?zhǔn)秸{(diào)用.

下邊是一些屬性和方法:

$this->response

web應(yīng)用返回的最后的響應(yīng)

$this->currentUri

當(dāng)前查看的Uri

visit($uri)

(Fluent) 使用 get 方法訪問給定的uri

get($uri, array $headers = [])

(Fluent) 使用 get 方法訪問url, 并可以傳輸給定的header

post($uri, array $data = [], array $headers = [])

(Fluent) post 請求

put($uri, array $data = [], array $headers = [])

(Fluent) put 請求

patch($uri, array $data = [], array $headers = [])

(Fluent) PATCH 請求

delete($uri, array $data = [], array $headers = [])

(Fluent) DELETE 請求

followRedirects()

(Fluent) 跟蹤最近返回的重定向

see($text, $negate = false)

(Fluent) 查找頁面上顯示的內(nèi)容/顯示/不顯示

seeJson(array $data = null)

(Fluent) 判定請求包含 json, 如果傳輸了 $data 參數(shù), json 值必須匹配.

seeStatusCode($status)

(Fluent) 相應(yīng)是否返回指定的狀態(tài)碼

seePageIs($uri)

(Fluent) 當(dāng)前頁面是否是指定的URI

seeOnPage($uri) and landOn($uri)

(Fluent) Alias seePageIs()

click($name)

(Fluent) 通過name 或者 id 來請求點(diǎn)擊

type($text, $element)

(Fluent) 填充自定義的文本

check($element)

(Fluent) 檢測頁面的checkbox

select($option, $element)
(Fluent) 選擇下拉項(xiàng)

attach($absolutePath, $element)

(Fluent) 附件

press($buttonText)

(Fluent) 提交指定文本的text

withoutMiddleware()

(Fluent) 禁用 middleware

dump()

輸入最近返回的內(nèi)容

Laravel 5.1 PHPUnit 應(yīng)用方法

這里有額外的 Laravel 5.1 方法和屬性

$app

$app 實(shí)例

$code

artisan 返回的最近的 code 碼

refreshApplication()

刷新應(yīng)用, setup()方法會(huì)自動(dòng)調(diào)用這個(gè)方法.

call($method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null)

調(diào)用指定的url 并且返回響應(yīng).

callSecure($method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null)

調(diào)用 https 訪問url并且返回響應(yīng)

action($method, $action, $wildcards = [], $parameters = [], $cookies = [], $files = [], $server = [], $content = null)

調(diào)用控制器方法

route($method, $name, $routeParameters = [], $parameters = [], $cookies = [], $files = [], $server = [], $content = null)

調(diào)用路由并且返回方法.

instance($abstract, $object)

注冊對象的實(shí)例

expectsEvents($events)

指定可能被觸發(fā)的事件列表.

withoutEvents()

不調(diào)用事件

expectsJobs($jobs)

注冊隊(duì)列

withSession(array $data)

使用session

session(array $data)

開始并設(shè)置 session

flushSession()

刷新當(dāng)前session 的內(nèi)容

startSession()

開始 session

actingAs($user)

(Fluent) 設(shè)置當(dāng)前登錄的用戶

be($user)

設(shè)置用戶

seeInDatabase($table, array $data, $connection = null)

(Fluent) 檢測給定的數(shù)據(jù)是否存在在數(shù)據(jù)庫中

notSeeInDatabase($table, $array $data, $connection = null)

(Fluent) 檢測數(shù)據(jù)是否不存在數(shù)據(jù)庫中

missingFromDatabase($table, array $data, $connection = null)

(Fluent) Alias notSeeInDatabase().

seed()

數(shù)據(jù)庫數(shù)據(jù)seed 生成器

artisan($command, $parameters = [])

指定 artisan 命令并且返回代碼

上邊的方法/屬性都能夠在 test 中 使用, 默認(rèn)的 ExampleTest.php 中存在一個(gè)方法 testBasicExample(), 這個(gè)調(diào)用了 $this->call(...) 方法.

Laravel 5.1 PHPUnit 斷言

除了標(biāo)準(zhǔn)的 PHPUnit 斷言(assertEquals(), assertContains(), assertInstanceOf(), ...)之外, 還存在很多允許測試 web 應(yīng)用的檢測項(xiàng)目

assertPageLoaded($uri, $message = null)

檢測最近的頁面是否被加載, 如果不存在 url / message 時(shí)候會(huì)報(bào)錯(cuò)

assertResponseOk()

是否頁面相應(yīng)OK

assertReponseStatus($code)

是否響應(yīng)指定的code

assertViewHas($key, $value = null)

視圖中是否存在指定的數(shù)據(jù)

assertViewHasAll($bindings)

視圖中是否存在指定的一系列數(shù)據(jù)

assertViewMissing($key)

指定視圖中是否不存在這個(gè)數(shù)據(jù)

assertRedirectedTo($uri, $with = [])

檢測是否重定向到指定的uri

assertRedirectedToRoute($name, $parameters = [], $with = [])

是否客戶端重定向到指定的路由

assertRedirectedToAction($name, $parameters = [], $with = [])

是否重定向到 action

assertSessionHas($key, $value = null)

session 中是否存在 key/ value

assertSessionHasAll($bindings)

session 中是否存在指定的 kv

assertSessionHasErrors($bindings = [])

session 是否存在錯(cuò)誤

assertHasOldInput()

session 中是否存在以前的數(shù)據(jù)

使用 Gulp 來進(jìn)行 TDD 測試

Gulp 是用javascript 寫成的編譯和自動(dòng)化工具. 基本用來最小化源代碼或者從源代碼生成文件. Gulp 能夠監(jiān)控源代碼的改變并且自動(dòng)運(yùn)行指定的任務(wù)

Laravel 5.1 存在 Laravel Elixir 允許運(yùn)行 gulp 任務(wù). Elixir 加入了更簡潔的語法. 你這樣想 PHP 中的 Laravel, Gulp 中的 Elixir.

一個(gè)最常用的 Gulp 是自動(dòng)化測試. 我們根據(jù) TDD (Test Driven Development) 來自動(dòng)化運(yùn)行我們的測試任務(wù).

首先, 編輯 gulpfile.js 文件, 并按照以下修改.

配置 Gulp 來運(yùn)行 PHPUnit 測試
var elixir = require("laravel-elixir");

elixir(function(mix) {
    mix.phpUnit();
});

這里我們調(diào)用 elixir() 方法. 傳遞一個(gè)函數(shù). 這個(gè)函數(shù)接收一個(gè) mix 對象. 這個(gè)函數(shù)能夠干很多你可能想都想不到的事情. 你可能想通過 less 文件編譯 css 文件. 然后合并 css 文件, 然后再文件末尾加綴上版本號. 所有的這些事情都可以通過 mix 對象來運(yùn)行.

但是現(xiàn)在, 我們僅僅運(yùn)行 PHPUnit 測試.

接下來, 直接運(yùn)行 glup

運(yùn)行 Gulp
~% cd Code/l5beauty
~/Code/l5beauty% gulp
[15:26:23] Using gulpfile ~/Code/l5beauty/gulpfile.js
[15:26:23] Starting "default"...
[15:26:23] Starting "phpunit"...
[15:26:25] Finished "default" after 2.15 s
[15:26:25]

*** Debug Cmd: ./vendor/bin/phpunit --colors --debug ***

[15:26:28] PHPUnit 4.7.4 by Sebastian Bergmann and contributors.

Configuration read from /Users/chuck/Code/l5beauty/phpunit.xml

Starting test "ExampleTest::testBasicExample".

Time: 2.07 seconds, Memory: 10.25Mb

OK (1 test, 2 assertions)
[15:26:28] gulp-notify: [Green!]
[15:26:28] Finished "phpunit" after 4.96 s

你可能收到一個(gè)通知, 一個(gè)彈框, 綠色告知你所有測試都已經(jīng)通過了

Figure 6.2 - Gulp’s PHPUnit Success on Windows 8.1

想要使用 gulp進(jìn)行自動(dòng)化測試, 運(yùn)行 gulp tdd

運(yùn)行 Gulp
~% cd Code/l5beauty
~/Code/l5beauty% gulp tdd
[15:29:49] Using gulpfile ~/Code/l5beauty/gulpfile.js
[15:29:49] Starting "tdd"...
[15:29:49] Finished "tdd" after 21 ms

這個(gè)命令掛載在這里, 監(jiān)聽源文件的變化, 并且在需要的時(shí)候進(jìn)行單元測試.

想要查看如何運(yùn)行的. 讓我們中段存在的單元測試.

改變 tests/ExampleTest.phpsee() 方法.

中段 ExampleTest.php
->see("Laravel 5x");

當(dāng)你保存這個(gè)文件, gulp 將會(huì)通知并且重新運(yùn)行 PHPUnit , 這個(gè)將會(huì)執(zhí)行錯(cuò)誤. 然后你會(huì)看到一個(gè)紅色的錯(cuò)誤提示

Figure 6.3 - Gulp’s PHPUnit Failure on Mac

如果你要重新更改回來,保存, 然后 gulp 會(huì)重新運(yùn)行 PHPUnit, 然后你會(huì)看到綠色的圖標(biāo)

退出 Gulp’s tdd 模式

按下 Ctrl+C

創(chuàng)建 Markdown 服務(wù)

在博客應(yīng)用中我們會(huì)使用 Markdown 語法來寫文章, 如果你不熟悉 markdown, 可以通過連接來檢查這個(gè)語法, 這是一個(gè)快速讀/寫并且能夠保存為 HTML.

舉例說明, 我們會(huì)創(chuàng)建一個(gè)服務(wù)項(xiàng)目來生成HTML.

拉取一個(gè) Markdown 包

這里有許多的PHP包來把markdown 轉(zhuǎn)換為HTML, 如果你去 http://packagist.org 這里搜索 markdown , 會(huì)發(fā)現(xiàn) 20 多頁的包.

我們會(huì)使用 Michel Fortin 創(chuàng)建的包. 因?yàn)?好", 接下來我們運(yùn)行如下的命令來拉取這個(gè)包

添加 Markdown 和 SmartyPants
~/Code/l5beauty% composer require michelf/php-markdown
Using version ^1.5 for michelf/php-markdown
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing michelf/php-markdown (1.5.0)
    Downloading: 100%

Writing lock file
Generating autoload files
Generating optimized class loader

~/Code/l5beauty% composer require "michelf/php-smartypants=1.6.0-beta1"
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing michelf/php-smartypants (1.6.0-beta1)
    Loading from cache

Writing lock file
Generating autoload files
Generating optimized class loader

你有沒有注意到指定了包版本號. 這是因?yàn)閷戇@篇文章的時(shí)候還沒有一個(gè)穩(wěn)定的版本號能夠自動(dòng)拉取到

創(chuàng)建 Markdown 測試類

開始 TDD session 的第一件事就是開啟 TDD 模式

Starting Gulp in TDD mode
~/Code/l5beauty% gulp tdd
[19:41:38] Using gulpfile ~/Code/l5beauty/gulpfile.js
[19:41:38] Starting "tdd"...
[19:41:38] Finished "tdd" after 23 ms

現(xiàn)在 gulp 監(jiān)控 PHPUnit 的改變. 讓我們創(chuàng)建測試類

tests 目錄, 創(chuàng)建一個(gè)新文件夾命名為 Services 同時(shí)創(chuàng)建一個(gè)文件 MarkdownerTest.php

初始化 tests/Services/MarkdownerTest.php
markdown = new AppServicesMarkdowner();
    }
    
    # 測試
    public function testSimpleParagraph()
    {
        $this->assertEquals(
            "

test

", $this->markdown->toHTML("test") ); } }

這里會(huì)報(bào)錯(cuò)

即使告訴你檢測失敗, 日志中也會(huì)存在相應(yīng)的錯(cuò)誤日志, 這里很明顯的是 AppServicesMarkdowner 這個(gè)類不存在.

創(chuàng)建 Markdowner 服務(wù)

這里我們創(chuàng)建一個(gè)服務(wù)來封裝 php-markdown 和 php-smartypants 來加載導(dǎo)入的服務(wù)

appServices 目錄創(chuàng)建一個(gè) Markdowner.php 服務(wù)并填寫以下的內(nèi)容 .

app/Services/Markdowner 的內(nèi)容
preTransformText($text);
        $text = MarkdownExtra::defaultTransform($text);
        $text = SmartyPants::defaultTransform($text);
        $text = $this->postTransformText($text);
        return $text;
    }
    
    protected function preTransformText($text)
    {
        return $text;
    }
    
    protected function postTransformText($text)
    {
        return $text;
    }
}

當(dāng)你保存了這個(gè)文件, Gulp 應(yīng)當(dāng)顯示一個(gè)綠色的提示框. 告訴你執(zhí)行OK.

如果你沒有收到綠色的提示. 檢測文件和測試類.

更多測試

大家都同意的是, 這不是一個(gè)好的 TDD 測試?yán)? 因?yàn)樘唵瘟? 實(shí)際的會(huì)有好多操作步驟和迭代, 如下

創(chuàng)建 MarkdownerTest w/ testSimpleParagraph()

Tests Fail

創(chuàng)建 Markdowner 類, 硬編碼 toHTML() 來通過測試

Tests Succeed

更新 Markdowner 類來使用 MarkdownExtra

Tests Succeed

添加一個(gè) testQuotes() 到 MarkdownerTest 類

Tests Fail

更新 Markdowner 類來使用 SmartyPants

Tests Succeed

目前為止, 所有的我們 Markdowner 類在測試前都是不完整的.要在該類上進(jìn)行 單元測試,應(yīng)該將其結(jié)構(gòu)化以便將 MarkdownExtraSmartyPants 類的實(shí)例注入到構(gòu)造函數(shù)中, 通過這種方式我們的單元測試可以注入模擬對象,并且只驗(yàn)證 MarkdownExtra 的行為,而不是它所調(diào)用的類.

但這不是一本關(guān)于測試的書。事實(shí)上,這是討論測試的惟一一章。我們會(huì)離開這個(gè)結(jié)構(gòu),但需要再添加幾個(gè)測試。

更新 MarkdownerTest 來和下面的內(nèi)容一致

app/Services/Markdowner 的最終內(nèi)容
markdown = new AppServicesMarkdowner();
    }
    
    /**
    * @dataProvider conversionsProvider
    */
    public function testConversions($value, $expected)
    {
        $this->assertEquals($expected, $this->markdown->toHTML($value));
    }
    
    public function conversionsProvider()
    {
        return [
            ["test", "

test

"], ["# title", "

title

"], ["Here"s Johnny!", "

Here’s Johnny!

"], ]; } }

在這里,我們更改了測試類用來一次測試多個(gè)轉(zhuǎn)換,并在 conversionsProvider() 中添加了三個(gè)測試。在進(jìn)行下一步驟之前,你的測試結(jié)果應(yīng)該是綠色的。

在系統(tǒng)控制臺(tái)中一旦測試是綠色的,按 Ctrl+C 來停止 Gulp

測試的其他方法

這里并不是想使用 Laravel 5.1 提供一個(gè)完整的測試方法,因?yàn)樵赑HP中沒有多帶帶的方法來進(jìn)行測試。

因此,在 Laravel 5 5.1 中沒有單一的測試方法。

但是,我們將探索一些替代方案

phpspec

除了 PHPUnit ,Laravel 5.1 還提供了 phpspec 。這是另一種流行的PHP測試,它更多地關(guān)注于 BDD(行為驅(qū)動(dòng)開發(fā))

這里有一些關(guān)于phpspec的注釋。

程序文件在 vendor/bin, 因此你可以在項(xiàng)目根目錄下調(diào)用 phpspec.

配置文件在根目錄, 名字是 phpspec.yml.

從 Gulp 中運(yùn)行 phpspec , Elixir 提供了 phpSpec() 函數(shù), 你可以在 mix 對象中運(yùn)行.

如果你把程序的命名空間從 App 改成其他的命名空間, 確保同步更新 phpspec.yml 中的配置.

單元測試

雖然 PHPUnit 是 PHP 單元測試的標(biāo)準(zhǔn),但也有其他的包可以使用

Enhance PHP - 單元測試框架支持 mocks 和 stubs.

SimpleTest - 另一個(gè)使用 mock 的單元測試框架.

功能 / 驗(yàn)收測試

這些測試真實(shí)的使用了您的應(yīng)用程序,而不是僅僅驗(yàn)證您的應(yīng)用程序中的代碼單元。當(dāng)使用流暢的測試方法 Laravel 5.1 時(shí),你可以使用 PHPUnit 進(jìn)行一些功能測試. ExampleTest.php 提供了一個(gè)簡單的示例. 但是也有其他的測試框架關(guān)注于功能/驗(yàn)收測試(functional / acceptance testing).

Codeception - 驗(yàn)收測試最流行的框架.

Selenium - 瀏覽器自動(dòng)化.

Mink - 瀏覽器自動(dòng)化.

行為驅(qū)動(dòng)開發(fā) (BDD)

BDD(行為驅(qū)動(dòng)開發(fā))有兩種方式: SpecBDD 和 StoryBDD

SpecDD 關(guān)注代碼的技術(shù)方面。Laravel 5.1 包含了 _phpspec_, 這是SpecDD的標(biāo)準(zhǔn)

StoryBDD 強(qiáng)調(diào)業(yè)務(wù)或特性測試. Behat 是最流行的 StoryBDD 框架。同樣 Codeception 也可以用于 StoryBDD 。

回顧

我們在這一章所做的第一件事就是創(chuàng)建一個(gè)名為 l5beauty 的項(xiàng)目。然后我們在這個(gè)項(xiàng)目中使用 PHPUnit 進(jìn)行單元測試。最后,我們創(chuàng)建了一個(gè) Markdowner 服務(wù)類,這有兩個(gè)目的 一是測試, 二是并在以后將 markdown 轉(zhuǎn)換為 HTML 。

這是一個(gè)相當(dāng)長的章節(jié),因?yàn)闇y試是一個(gè)很大的話題,而一個(gè)章節(jié)無法給出公正的評價(jià)。但是,正如我所提到的,測試并不是本書的重點(diǎn)。在隨后的章節(jié)中,將不再進(jìn)行測試。

下一章我們討論一些如何讓系統(tǒng)更快的話題如何?

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/25884.html

相關(guān)文章

  • [] Laravel 5 之美 - 2) 安裝運(yùn)行時(shí)必要軟件和組件

    摘要:對于來說,在主機(jī)操作系統(tǒng)上運(yùn)行是絕對必要的。在和中,從主機(jī)操作系統(tǒng)中運(yùn)行可以出現(xiàn)系統(tǒng)通知。你仍然可以在或的虛擬機(jī)中成功地運(yùn)行,但在發(fā)出通知時(shí)將收到警告錯(cuò)誤僅從你的主機(jī)操作系統(tǒng)運(yùn)行。 原文地址: Laravel 5.1 Beauty - Required Software and Components 怎樣安裝開發(fā) Laravel 5.1 必要的軟件: VirtualBox 和 Vagr...

    alaege 評論0 收藏0
  • [] Laravel 5 之美 - 1) 介紹

    摘要:原文地址我的新書的簡要介紹長期支持是第一個(gè)長期支持發(fā)行版。這意味著提供了年的修復(fù),并且提供了年的安全補(bǔ)丁。但并不是一個(gè)真正的能夠涵蓋方方面面的手冊。 原文地址: Laravel 5.1 Beauty - Introduction 我的新書 About Laravel 5.1 的簡要介紹 長期支持 Laravel 5.1 是第一個(gè)LTS(長期支持) Laravel 發(fā)行版。這意味著提供了...

    yibinnn 評論0 收藏0
  • [] Laravel 5 之美 - 3) 設(shè)置 windows 機(jī)器

    摘要:通過單擊確定關(guān)閉所有剩余窗口。中的任何其他的使用都將通過命令提示符來操作。檢查版本關(guān)閉所有打開的命令提示符并打開一個(gè)新的命令提示符。首次啟動(dòng)現(xiàn)在,虛擬機(jī)正在運(yùn)行。將會(huì)話主機(jī)名設(shè)置為,端口為將保存為。 原文地址: Laravel 5 Beauty - Setting up a Windows Machine 如何為 Laravel 5.1 開發(fā)做好準(zhǔn)備 注意 這是本教程的第二步(針對Wi...

    馬永翠 評論0 收藏0
  • [] Laravel 5 之美 - 4) 設(shè)置 OS X 或者 Linux 開發(fā)機(jī)器

    摘要:和使用作為包管理器,使用。除了以外,沒有官方的包管理器,但是非官方的包管理器。檢查版本要求版本是或更高版本。下載頁面安裝完畢后,一定要檢查版本,確保和在終端可用檢查和版本安裝是快速開發(fā)的一個(gè)不可或缺的部分。 原文地址: Laravel 5 Beauty - Setting up an OS X or Linux Machine 讓你的 OS X 或者 Linux 機(jī)器做好開發(fā) Lara...

    ad6623 評論0 收藏0
  • PHP / Laravel API 開發(fā)推薦閱讀清單

    showImg(https://segmentfault.com/img/bV6aHV?w=1280&h=800); 社區(qū)優(yōu)秀文章 Laravel 5.5+passport 放棄 dingo 開發(fā) API 實(shí)戰(zhàn),讓 API 開發(fā)更省心 - 自造車輪。 API 文檔神器 Swagger 介紹及在 PHP 項(xiàng)目中使用 - API 文檔撰寫方案 推薦 Laravel API 項(xiàng)目必須使用的 8 個(gè)...

    shmily 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<