我為什么使用PhpStorm

PhpStorm-讓開發(fā)更智能

PhpStormJetBrains 公司開發(fā)的一款商業(yè)的(收費(fèi)的,不過有破解版) PHP 集成開發(fā)工具。PhpStorm可隨時(shí)幫助用戶對其編碼進(jìn)行調(diào)整,運(yùn)行單元測試或者提供可視化debug功能和智能HTML/CSS/JavaScript/PHP編輯、代碼質(zhì)量分析、版本控制集成(SVN、GIT)、調(diào)試和測試等功能。另外,它還是跨平臺,在Windows和MacOS下都可以使用?!米职俣劝倏?/p>

img

優(yōu)點(diǎn)

  1. 跨平臺。
  2. 對PHP支持refactor功能。
  3. 自動生成phpdoc的注釋,非常方便進(jìn)行大型編程。
  4. 內(nèi)置支持Zencode。
  5. 生成類的繼承關(guān)系圖,如果有一個(gè)類,多次繼承之后,可以通過這個(gè)功能查看他所有的父級關(guān)系。
  6. 支持代碼重構(gòu),方便修改代碼。
  7. 擁有本地歷史記錄功能(local history功能)。
  8. 方便的部署,可以直接將代碼直接upload到服務(wù)器。

快捷鍵

phpStorm有非常非常多并且好用的的快捷鍵,我下面就舉一些經(jīng)常用的的快捷鍵演示,還有一些不常用的就不舉例了,絕對能提高你開發(fā)的效力率...

(Windows與Mac類似,只要把command鍵換成ctrl)

查詢相關(guān)

  • command + f 查找當(dāng)前文件
  • command + r 查找替換
  • command + e 打開最近的文件
  • command + shift + o 快速查詢文件
  • command + shift + f 關(guān)鍵字查找,更強(qiáng)大的查詢器(機(jī)器不好的,最好還是先確定一下目錄)
  • command + shift + r 高級替換
  • command + alt + b 找到當(dāng)剪類的所有子類
  • alt + shift + c 查找最近修改的文件
  • alt + f7 直接查詢選中的字符
  • ctrl + f7 文件中查詢選中字符
  • command + 鼠標(biāo)點(diǎn)擊 跳到類或方法或變量等聲明處
  • command + shift + tab 切換tab頁文件
  • command + shift + +,- 展開或縮起
  • command + . 折疊或展開選中的代碼
img
img
img

自動代碼

  • alt + 回車 導(dǎo)入包,自動修正
  • command + n 快事為每個(gè)成員屬性生成 getter 及 setter 方法
  • ctrl + i 快速生成插入魔術(shù)方法
  • ctrol + o 復(fù)寫父類方法
  • command + alt + l 對當(dāng)前文件進(jìn)行格式化排版
  • command + d 復(fù)制當(dāng)剪行
  • command + / // 注釋
  • command + shift + / /* */ 注釋

以command + n舉個(gè)例子

我創(chuàng)建了一個(gè)Person類在/Entity/目錄下,然后我設(shè)置一些私有的屬性如下代碼:

namespace Entity;

class Person
{
    private $sign = '';

    private $name = '';

    private $age  = 0;
    
    private $work = '';
    
    private $sex  = '女';
}

然后咱們使用command + n 在彈出來的窗口選擇"PHPDoc Blocks..." 如下圖:

img

再再彈出的窗口選擇所有屬性再點(diǎn)"OK":

img
namespace Entity;

/**
 * Class Person
 * @package Entity
 */
class Person
{
    /**
     * @var string
     */
    private $sign = '';

    /**
     * @var string
     */
    private $name = '';

    /**
     * @var int
     */
    private $age  = 0;

    /**
     * @var string
     */
    private $work = '';
    
    /**
     * @var string
     */
    private $sex  = '女';
}

然后它就對剛剛所選擇屬性加上了注釋...... 是不是灰常神奇。

ok,咱們繼續(xù),再次使用command + n鍵選擇Contructor...彈出需要進(jìn)行傳參賦值的屬性:

img
    /**
     * Person constructor.
     * @param string $sign
     */
    public function __construct($sign)
    {
        $this->sign = $sign;
    }

如果不選擇的話將不需要對成員屬性進(jìn)行設(shè)置。

然后咱們再來看看其他功能,比如"Implement Methods..."這個(gè)是快速生成魔術(shù)方法。

img

通常咱們設(shè)置、獲取一個(gè)成員屬性時(shí)最好不要直接使用$person->name = $name 這種方式進(jìn)行設(shè)置參數(shù)或取得參數(shù)值,建議是對每個(gè)屬性都開放一個(gè) getter 跟 setter方法,這樣可以很方便得對傳進(jìn)或傳出去的值進(jìn)行處理,這就是上面我為什么要把成員屬性設(shè)置置為私有的原因之一

同樣的command + n 選擇"Getters and Stetters" 然后選擇所有屬性,它就會把所有的屬性設(shè)置gettersetter方法,這里要注意的是Personsign是唯一的,不可進(jìn)行修改,所以咱們要把設(shè)置sign的方法去掉。注意: 最好setter方法設(shè)置完后返回當(dāng)剪對象,這樣的話咱們就可以連寫了并且phpStorm的提示還相當(dāng)友好下面有例子:

    /**
     * @return string
     */
    public function getSign()
    {
        return $this->sign;
    }

    /**
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @param string $name
     * @return $this
     */
    public function setName($name)
    {
        $this->name = $name;

        return $this;
    }

    /**
     * @return int
     */
    public function getAge()
    {
        return $this->age;
    }

    /**
     * @param int $age
     * @return $this
     */
    public function setAge($age)
    {
        $this->age = $age;

        return $this;
    }

    /**
     * @return string
     */
    public function getWork()
    {
        return $this->work;
    }

    /**
     * @param string $work
     * @return $this
     */
    public function setWork($work)
    {
        $this->work = $work;

        return $this;
    }
    
    /**
     * @var string
     */
    private $sex  = '女';

    /**
     * @return string
     */
    public function getSex()
    {
        return $this->sex;
    }

    /**
     * @param string $sex
     * @return $this
     */
    public function setSex($sex)
    {
        $this->sex = $sex;
        
        return $this;
    }

連寫的例子:

use Entity\Person;
$person = new Person();
$person->setName("蛋蛋")
    ->setAge(17)
    ->setWork('student');

最后再演示一個(gè)快速復(fù)寫被繼承類的功能。咱們新建一個(gè)Man類,然后繼承Person類,上面的Person類缺省是女性別,所以我們需要重寫它并且加上"中國男人"。同樣的使用command + n打開快捷窗口選擇 "Override Methods..." 彈出來可被復(fù)寫的方法:

img

然后咱們選擇getSexsetSex方法,然后確定,在Man方法下生成以下方法。

namespace Entity;

/**
 * Class Man
 * @package Entity
 */
class Man extends Person
{
    /**
     * @return string
     */
    public function getSex()
    {
        return parent::getSex(); // TODO: Change the autogenerated stub
    }

    /**
     * @param int $sex
     * @return $this
     */
    public function setSex($sex)
    {
        return parent::setSex($sex); // TODO: Change the autogenerated stub
    }
}

咱們把return parent::getSex()return parent::setSex( $age )刪除掉,不需要這樣,然后改成如下模式。

    /**
     * @return string
     */
    public function getSex()
    {
        if ( ! mb_strpos(parent::getSex(), "中國") )
            return "中國".parent::getSex();
        return parent::getSex();
    }

    /**
     * @param int $sex
     * @return $this
     */
    public function setSex($sex)
    {
        if( ! mb_strpos($sex, "中國") )
            $sex = "中國".$sex;
        return parent::setSex($sex);
    }

工具類等

img

看起來好多的樣紙,我懶,不想講可不可以?我就挑幾個(gè)好不好?

  • 連拉ssh 照著配就行了,很簡單
img
  • composer 這個(gè)也很明了吧,不多說了,平時(shí)咱們都是通過命令行來實(shí)現(xiàn)的

Database 工具

phpStorm所集成的database工具十分強(qiáng)大,當(dāng)然它還有單獨(dú)的database工具叫做: DataGrip,當(dāng)然需要獨(dú)立購買,咱們phpStorm有集成,就使用它好啦哈哈....

Database工具一般在右側(cè)欄,如果沒有的話搜一下就好了,多簡單的事兒呀...

img

開始創(chuàng)建一個(gè)數(shù)據(jù)庫連接吧...

img

選擇如上圖的那個(gè)"+"號,然后選擇Data Source數(shù)據(jù)來源,再選擇數(shù)據(jù)庫類型,一般咱們都是使用mysql吧,這次咱們試試新的,比如SQLite

img

選擇sqlite數(shù)據(jù)文件的地址,然后選擇驅(qū)動,如果沒有的話得先下載安裝sqlite的驅(qū)動插件,這個(gè)很簡單,在Driver下有提示,照做就是了...

咱們先看一下mysql的配制吧...

img

mysql的也非常簡單,如果需要ssh/ssl連接的話,需要在SSH/SSL選項(xiàng)卡上配配地址入連接密碼或sshkey...

配制好了,打開選擇的數(shù)據(jù)庫:

img

上圖是連接的數(shù)據(jù)庫的表及表字段信息... 來演示一下查詢... 點(diǎn)擊那"QL"樣的dos窗口圖標(biāo)會彈出一個(gè)tab頁,咱們可以在這里寫sql語句。

img

咱們查詢User表下的所有數(shù)據(jù),可以看到會有相當(dāng)提示,這是相當(dāng)?shù)暮檬拱?..查詢完成后在下面的Database Console上會有顯示表數(shù)據(jù),可對它進(jìn)行修改,等等操作增加數(shù)據(jù)也可以。

img

快捷鍵command + alt + l不但對代碼進(jìn)行格式化,也sql語句也是非常有效的,如上圖。

在"Database Console"欄上點(diǎn)"Output"選項(xiàng)卡可以查看sql語句執(zhí)行的情況、記錄及所消耗的時(shí)間等等信息...

  • command + 回車 執(zhí)行sql語句或執(zhí)行選中的sql語句

關(guān)于database工具的用法還有很多很多,我就不一一講解了,大家可以自己慢慢去研究,真的非常好用

CVS 和 Git

  • command + k
  • command + shift + k

關(guān)于FTP的配制,由于我不推薦使用,所以這里就不多說啦!

都到這了,那咱們就說說在phpStorm上如何使用git工具吧

從git服務(wù)器上把代碼抓到本地

選擇CVS -> Checkout from Version Control -> Git

img

在彈出的窗口輸入自己的git倉庫信息:

img

注意 conle 的時(shí)間如果沒有設(shè)置你的github賬號的話可能會提示你輸入賬號信息,咱們輸入就行了。如果需要修改的話則在設(shè)置里面進(jìn)行修改,咱們可以使用command + ,打開"Preferences" 然后找到"Version Control"選項(xiàng)目的"GitHub"進(jìn)行設(shè)置,還有"Git"路徑。

img

從mster創(chuàng)建分支

創(chuàng)建分支以通過命令行進(jìn)行創(chuàng)建,咱們可以通過phpstrom的窗口進(jìn)行創(chuàng)建,如下:

img

這個(gè)東西在右下角,"Git:master" 然后彈出上面窗口選擇"New Branch" 然后輸入新分支的名稱就好了,它會自動切換到新分支下。

是不是超級簡單呀...

提交代碼至遠(yuǎn)程分支

當(dāng)咱們修改完代碼后,咱們需要把代碼提交到遠(yuǎn)程分支上,使用快捷鍵command + k提交相當(dāng)修改后的代碼,雙擊文件可以進(jìn)行對比。在"Commit Message"寫上修改的東西然后點(diǎn)提交,這時(shí)就把代碼提交到本地分支上了。

不使用快捷鍵的話,可以使用"CVS -> Commit Changes"提交,也會彈出下面窗口...

img

提交到本地分支后,咱們需要把代碼推到遠(yuǎn)程分支上,所以需要使用快捷鍵: command + shif + k提交遠(yuǎn)程分支...

img

也可以使用"CVS -> Git -> Push"進(jìn)行提交...效果是一樣的

注意svn木有 command + shift + k這一步

合并分支

分并非常簡單,只要選擇需要合并的分支,然后merge就行了,如下圖:

img

這樣就合并完成,當(dāng)然,如果有沖突的話會提交有沖突,并讓你解決,如果沒有的話就直接合并成功了...然后就可以push了......

Compare 是對合并的分支進(jìn)行對比...

使用svn...

灰常抱歉,我電腦上木有找到相關(guān)Svn項(xiàng)目的代碼,就不多說了...

安裝插件

這里講一個(gè)javascript 的安裝,使用快捷鍵cmd + , 打開 Preferances

安裝 JavaScript 插件

Languages & Frameworks -> Javascript -> Libraries

img

選擇add需要的框架

安裝symfony2插件,搜索插件,然后點(diǎn)install

img

然后重啟phpStorm 就完事了....

注意

  • 灰色+波浪線: 變量未使用
  • 黃色波浪線: 變量未名單詞拼寫問題
  • 紅色波浪線: 變量未定義
  • 還有好多我就不一一舉例了,可能是因?yàn)槲掖a寫得太好,出錯(cuò)的東西比較少吧...

右邊欄出現(xiàn)紅色,這點(diǎn)是必須要杜絕的,好的代碼不應(yīng)該出現(xiàn)紅色的任何提示...一旦出現(xiàn)一定要馬上解決,好的代碼不應(yīng)該出現(xiàn)一個(gè)黃、紅色的提示。

TODO 表示待辦事件,當(dāng)提交到vcs、svn或git的時(shí)候,會提示是還有未處理的事件,需要確認(rèn)提交。

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

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

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