PHP经验分享

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

2019-08-05  本文已影响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);

}

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

上一篇下一篇

猜你喜欢

热点阅读