Home >Backend Development >PHP Tutorial >如何优雅的使用 phpStorm 开发工具

如何优雅的使用 phpStorm 开发工具

WBOY
WBOYOriginal
2016-06-23 13:19:331017browse

如何优雅的使用 phpStorm 开发工具

按照惯例依然是从百科上复制一条简介: PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具。PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能和智能HTML/CSS/JavaScript/PHP编辑、代码质量分析、版本控制集成(SVN、GIT)、调试和测试等功能。另外,它还是跨平台。在Windows和MacOS下都可以使用。PhpStorm-让开发更智能,而不是更困难。

听说phpStorm 10支持php7呃

优点

  • 跨平台。

  • 对PHP支持refactor功能。

  • 自动生成phpdoc的注释,非常方便进行大型编程。

  • 内置支持Zencode。

  • 生成类的继承关系图,如果有一个类,多次继承之后,可以通过这个功能查看他所有的父级关系。

  • 支持代码重构,方便修改代码。

  • 拥有本地历史记录功能(local history功能)。

  • 方便的部署,可以直接将代码直接upload到服务器。

  • 总之它很牛逼就是了,什么都能干

    快捷键

    phpStorm有非常非常多并且好用的的快捷键,我下面就举一些经常用的的快捷键演示,还有一些不常用的就不举例了,绝对能提高你开发的效力率...

    (Windows与Mac类似,只要把command键换成ctrl)

    查询相关

    • command + f 查找当前文件

    • command + r 查找替换

    • command + e 打开最近的文件

    • command + shift + o 快速查询文件

    • command + shift + f 关键字查找,更强大的查询器(机器不好的,最好还是先确定一下目录)

    • command + shift + r 高级替换

    • command + alt + b 找到当剪类的所有子类

    • alt + shift + c 查找最近修改的文件

    • alt + f7 直接查询选中的字符

    • ctrl + f7 文件中查询选中字符

    • command + 鼠标点击 跳到类或方法或变量等声明处

    • command + shift + tab 切换tab页文件

    • command + shift + +,- 展开或缩起

    • command + . 折叠或展开选中的代码

    自动代码

    • alt + 回车 导入包,自动修正

    • command + n 快事为每个成员属性生成 getter 及 setter 方法

    • ctrl + i 快速生成插入魔术方法

    • ctrol + o 复写父类方法

    • command + alt + l 对当前文件进行格式化排版

    • command + d 复制当剪行

    • command + / // 注释

    • command + shift + / / / 注释

    以command + n举个例子

    我创建了一个Person类在/Entity/目录下,然后我设置一些私有的属性如下代码:

    namespace Entity;class Person{    private $sign = '';    private $name = '';    private $age  = 0;        private $work = '';        private $sex  = '女';}

    然后咱们使用command + n 在弹出来的窗口选择"PHPDoc Blocks..." 如下图:

    再再弹出的窗口选择所有属性再点"OK":

    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,咱们继续,再次使用command + n键选择Contructor...弹出需要进行传参赋值的属性:

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

    如果不选择的话将不需要对成员属性进行设置。

    然后咱们再来看看其他功能,比如"Implement Methods..."这个是快速生成魔术方法。

    通常咱们设置、获取一个成员属性时最好不要直接使用$person->name = $name 这种方式进行设置参数或取得参数值,建议是对每个属性都开放一个 getter 跟 setter 方法,这样可以很方便得对传进或传出去的值进行处理,这就是上面我为什么要把成员属性设置置为私有的原因之一

    同样的command + n 选择"Getters and Stetters" 然后选择所有属性,它就会把所有的属性设置getter及setter方法,这里要注意的是Person的sign是唯一的,不可进行修改,所以咱们要把设置sign的方法去掉。注意: 最好setter方法设置完后返回当剪对象,这样的话咱们就可以连写了并且phpStorm的提示还相当友好下面有例子:

        /**     * @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');

    最后再演示一个快速复写被继承类的功能。咱们新建一个Man类,然后继承Person类,上面的Person类缺省是女性别,所以我们需要重写它并且加上"中国男人"。同样的使用command + n打开快捷窗口选择 "Override Methods..." 弹出来可被复写的方法:

    然后咱们选择getSex跟setSex方法,然后确定,在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);    }

    碉堡了有木有。

    工具类等

    看起来好多的样纸,我懒,不想讲可不可以?我就挑几个好不好?

    • 连拉ssh 照着配就行了,很简单

    • composer 这个也很明了吧,不多说了,平时咱们都是通过命令行来实现的

    • vagrant 这个phpstorm 10集成了vagrant,介于咱们自己已经搭建好了自己的vagrant环境,就不使用phpstorm所集成的啦

    参考: 《使用Virtual Box和Vagrant搭建开发环境》

    Database 工具

    phpStorm所集成的database工具十分强大,当然它还有单独的database工具叫做: DataGrip,当然需要独立购买,咱们phpStorm有集成,就使用它好啦哈哈....(咱们的PhpStorm可是花钱买的,请支持正版)

    Database工具一般在右侧栏,如果没有的话搜一下就好了,多简单的事儿呀...

    开始创建一个数据库连接吧...

    选择如上图的那个"+"号,然后选择Data Source数据来源,再选择数据库类型,一般咱们都是使用mysql吧,这次咱们试试新的,比如SQLite

    选择sqlite数据文件的地址,然后选择驱动,如果没有的话得先下载安装sqlite的驱动插件,这个很简单,在Driver下有提示,照做就是了...

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

    mysql的也非常简单,如果需要ssh/ssl连接的话,需要在SSH/SSL选项卡上配配地址入连接密码或sshkey...

    配制好了,打开选择的数据库:

    上图是连接的数据库的表及表字段信息... 来演示一下查询... 点击那"QL"样的dos窗口图标会弹出一个tab页,咱们可以在这里写sql语句。

    咱们查询User表下的所有数据,可以看到会有相当提示,这是相当的好使啊...查询完成后在下面的Database Console上会有显示表数据,可对它进行修改,等等操作增加数据也可以。

    快捷键command + alt + l不但对代码进行格式化,也sql语句也是非常有效的,如上图。

    在"Database Console"栏上点"Output"选项卡可以查看sql语句执行的情况、记录及所消耗的时间等等信息...

    • command + 回车 执行sql语句或执行选中的sql语句

    关于database工具的用法还有很多很多,我就不一一讲解了,大家可以自己慢慢去研究,真的非常好用

    CVS 和 Git

    • command + k

    • command + shift + k

    关于FTP的配制,由于我不推荐使用,所以这里就不多说啦!

    都到这了,那咱们就说说在phpStorm上如何使用git工具吧

    算了,还是举一个例子吧,配辣么多太累了,一会我看下有没有已经配好的,如果有的话一会拉出来截个图看看就行吧,反正现在svn用得也比较少了,还是git用得爽,分布式嘛,离线嘛,多好...关于svn -> git可以参考我之前写的一篇文章

    《将代码库从Svn迁移Git》

    从git服务器上把代码抓到本地

    选择CVS -> Checkout from Version Control -> Git

    在弹出的窗口输入自己的git仓库信息:

    注意 conle 的时间如果没有设置你的github账号的话可能会提示你输入账号信息,咱们输入就行了。如果需要修改的话则在设置里面进行修改,咱们可以使用command + ,打开"Preferences" 然后找到"Version Control"选项目的"GitHub"进行设置,还有"Git"路径。

    从mster创建分支

    创建分支以通过命令行进行创建,咱们可以通过phpstrom的窗口进行创建,如下:

    这个东西在右下角,"Git:master" 然后弹出上面窗口选择"New Branch" 然后输入新分支的名称就好了,它会自动切换到新分支下。

    是不是超级简单呀...

    提交代码至远程分支

    当咱们修改完代码后,咱们需要把代码提交到远程分支上,使用快捷键command + k提交相当修改后的代码,双击文件可以进行对比。在"Commit Message"写上修改的东西然后点提交,这时就把代码提交到本地分支上了。

    不使用快捷键的话,可以使用"CVS -> Commit Changes"提交,也会弹出下面窗口...

    提交到本地分支后,咱们需要把代码推到远程分支上,所以需要使用快捷键: command + shif + k提交远程分支...

    也可以使用"CVS -> Git -> Push"进行提交...效果是一样的

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

    合并分支

    分并非常简单,只要选择需要合并的分支,然后merge就行了,如下图:

    这样就合并完成,当然,如果有冲突的话会提交有冲突,并让你解决,如果没有的话就直接合并成功了...然后就可以push了......

    Compare 是对合并的分支进行对比...

    使用svn...

    灰常抱歉,我电脑上木有找到相关Svn项目的代码,就不多说了...

    安装插件

    这里讲一个javascript 的安装,使用快捷键cmd + , 打开 Preferances

    安装 JavaScript 插件

    Languages & Frameworks -> Javascript -> Libraries

    选择add需要的框架

    安装symfony2插件,搜索插件,然后点install

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

    注意

    • 灰色+波浪线: 变量未使用

    • 黄色波浪线: 变量未名单词拼写问题

    • 红色波浪线: 变量未定义

    • 还有好多我就不一一举例了,可能是因为我代码写得太好,出错的东西比较少吧...

    右边栏出现红色,这点是必须要杜绝的,好的代码不应该出现红色的任何提示...一旦出现一定要马上解决,好的代码不应该出现一个黄、红色的提示。

    TODO 表示待办事件,当提交到vcs、svn或git的时候,会提示是还有未处理的事件,需要确认提交。

    写得有点多了,想写的东西比较多,要不分两篇写好了?算了,我比较懒,就这样吧,等我以后想写了再写吧,谢谢阅读

    其实有很多东西可以写的,我只是想偷懒而已......

    The End: 2016年01月09日 下午18时许

    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn