1. 程式人生 > >Laravel學習筆記之基於PHPStorm編輯器的Laravel開發

Laravel學習筆記之基於PHPStorm編輯器的Laravel開發

引言

本文主要講述在PHPStorm編輯器中如何使用PHPStorm的Laravel外掛和Laravel IDE Helper來開發Laravel程式,結合個人積累的一點經驗來說明使用PHPStorm編輯器來開發程式還是很順手的,內容主要基於PHPStorm官方文件Laravel Development using PhpStorm

學習主題

本文主要涉及以下幾個技巧:

  1. Composer的初始化

  2. Laravel IDE Helper的安裝

  3. Laravel Plugin的安裝

  4. PHPStorm對Laravel框架的支援

  5. PHPStorm對Blade模板引擎的支援

  6. 使用PHPStorm除錯Laravel程式

  7. 使用PHPStorm的單元測試功能

  8. 使用PHPStorm的資料庫功能

1、一些準備工作

(1)、初始化composer
PHPStorm提供了composer配置功能,可以在PHPStorm新建一個空專案,然後在空專案根目錄右鍵選擇Composer|Init Composer...,然後點選從getcomposer.org網上下載,PHPStorm會自動下載composer.phar檔案,並在專案根目錄下生成composer.json檔案,速度也很快:
圖片描述
圖片描述

對於composer.json檔案中陣列key欄位值可以在Composer官網上查詢相關解釋,包括重要的requirerequire-dev

欄位解釋。
(2)、安裝Laravel IDE Helper
安裝也很簡單,還是在專案根目錄右鍵找到Composer選擇Add Dependancy...,搜尋laravel-ide-helper選擇安裝就行,如果composer.json檔案中"minimum-stability":"stable"那就必須要安裝個穩定版的,我這裡選擇v2.1.2穩定版。安裝後就會在根目錄下自動生成一個vendor資料夾,該資料夾存放各種依賴包。當然也可直接在composer.json裡新增上require欄位值及對應的laravel-ide-helper值,再php composer.phar composer.json update
就行,具體可以去packagist.org裡去搜laravel-ide-helper找對應的安裝方法。
圖片描述
其實,Laravel IDE Helper就是一個第三方安裝包,安裝後會有些程式碼提示等一些好處,也可選擇不安裝,當然安裝也比較簡單。安裝後需要在config/app.php裡註冊下Service Provider就行:


    return array(
        // ...
        'providers' => array(
            // ...
            'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider', // Laravel IDE helper
        ),
        // ...
    );

Laracasts官網上有一個有關Laravel Ide Helper的視訊,可以看下,PHPStorm's Laravel Facades Issue

(3)、安裝Laravel Plugin
選擇Preference或者Command + ,,選擇下方的Browse repositories...瀏覽外掛倉庫,並選擇安裝Laravel Plugin,並重啟PHPStorm就行,最後在Preference|Other Settings|Laravel Plugin裡選擇enable plugin for this project再重啟下PHPStorm就OK了:
圖片描述
So,安裝Laravel Plugin有啥好處沒:主要就是程式碼補全。針對Routes/Controllers/Views/Configuration/Services/Translations的程式碼補全,比較方便而已,懶得裝也可以不裝。舉個檢視程式碼補全例子:
圖片描述
效率會高很多,而且安裝也很簡單,裝一個也無妨嘛。

2、PHPStorm對Blade模板支援

PHPStorm提供了對Blade模板語法高亮,而且還包括一些指令的補全和瀏覽,如@include/@section/@extends等等,寫程式碼時很方便:
圖片描述
圖片描述

總的來說,PHPStorm對Blade模板的程式碼提示和補全還是支援的比較好的,使用很順手。

這裡,還推薦一個Laravel Live Templates for PhpStorm,安裝地址:https://github.com/koomai/php...,這個小依賴包也比較好用,建議在PHPStorm中安裝下,安裝方法和好處可以進去看看,安裝很簡單。

3、使用Xdebug來除錯Laravel程式

Xdebug是除錯PHP程式的神器,尤其在除錯Laravel程式碼時會非常有用。在PHPStorm中配置Xdebug也很簡單,首先看下PHP版本中是否安裝了Xdebug擴充套件:

php -m

[PHP Modules]
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
http
iconv
imap
intl
json
ldap
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
propro
raphf
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Xdebug
Zend OPcache

如果沒有裝Xdebug擴充套件的話需要裝一下,裝完後修改下php.ini把xdebug.so前的路徑';'去掉,並重啟下PHP就行。如果你是本地開發,是MAC系統的話,可以裝整合環境MAMP,該PHP中都有xdebug.so,不過需要使能下php.ini中xdebug擴充套件。

安裝好後xdebug後,需要配置下PHP:
圖片描述

使能下PHPStorm中Debug Listening:點選Run->Start listening for PHP Debug Connections,然後點選右上角的下三角設定下:

圖片描述

可以選擇新建一個PHP Web Application或者PHP Script,選擇PHP Web Application的話需要配置下Server,預設本地開發並且路由為localhost,則配置如下:

圖片描述

這裡以PHP Script舉例,如下:
圖片描述

然後點選右上角的爬蟲圖示執行除錯,並且各個變數值在除錯控制檯中顯示:

圖片描述

大概聊了下在PHPStorm中配置Xdebug,不管咋樣,一定要配置好Xdebug,這在平時讀程式碼尤其Laravel原始碼時會非常有用。

4、使用PHPUnit單元測試Laravel程式

首先需要在本地安裝下PHPUnit:

 wget https://phar.phpunit.de/phpunit.phar
 chmod +x phpunit.phar
 sudo mv phpunit.phar /usr/local/bin/phpunit
 phpunit --version

然後在PHPStorm中配置下PHPUnit:

圖片描述

Configuration file指向本地的phpunit.xml.dist檔案,該檔案是用來配置phpunit的測試套件的,可以看官網中文版的:[用 XML 配置來編排測試套件
][16],比如本人這裡的套件配置:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         bootstrap="vendor/autoload.php"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false"
         syntaxCheck="true"
         verbose="true"
>
    <testsuites>
        <testsuite name="flysystem/tests">
            <directory suffix=".php">./tests/</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist>
            <directory suffix=".php">./src/</directory>
        </whitelist>
    </filter>
    <listeners>
        <listener class="Mockery\Adapter\Phpunit\TestListener" file="./vendor/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php"></listener>
    </listeners>
    <logging>
        <!--<log type="coverage-text" target="php://stdout" showUncoveredFiles="true"/>-->
        <!--<log type="coverage-html" target="coverage" showUncoveredFiles="true"/>-->
        <!--<log type="coverage-clover" target="coverage.xml" showUncoveredFiles="true"/>-->
    </logging>
</phpunit>

在寫好PHPUnit測試後,可以在終端執行phpunit命令就行,或者單獨執行某個測試類,可以在測試類裡右鍵選擇Run xxxTest.php就行,如:
圖片描述

寫測試還是很有必要的,而且是必須的。PHPUnit寫測試,以後還會詳聊。

5、使用PHPStorm的Database連結Laravel程式資料庫

PHPStorm中提供了database外掛,功能也比較強大,我想用過PHPStorm的應該都知道如何使用,這裡聊下一個很好用的一個功能。經常遇到這樣的一個情景:資料庫裝在資料庫伺服器db.test.com中,但本地是登陸不上去的,但
在開發伺服器host.company.com是可以連結資料庫伺服器的,那如何使用database來連線資料庫伺服器呢?

可以通過SSH tunnel來連線,如:
圖片描述

這裡Auth type可以選擇Password或者Key Pair,如果你是通過密碼登入開發伺服器的,選擇Password;如果是通過金鑰登陸的,選擇Key Pair。然後在general tab中配置下資料庫伺服器就OK了。

PHPStorm還提供了Remote Host外掛來連結遠端伺服器,點選Tools->Deployment->Browse Remote Host就可看到,這個外掛和Database一樣同樣的方便看伺服器的東西,並可以在本地修改病Upload到伺服器上,而不用在Terminal中登入到遠端伺服器,在Terminal上檢視修改東西。