美文网首页PHP经验分享
很多朋友还不是很会使用phpStorm吗?带来phpStorm的

很多朋友还不是很会使用phpStorm吗?带来phpStorm的

作者: 一休哥_ | 来源:发表于2019-08-05 17:39 被阅读4次

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

    优点

    跨平台。

    对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..." 弹出来可被复写的方法:

    连写的例子:

    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);

    }

    希望这篇详细教程可以帮助到大家。

    相关文章

      网友评论

        本文标题:很多朋友还不是很会使用phpStorm吗?带来phpStorm的

        本文链接:https://www.haomeiwen.com/subject/snxvdctx.html