当前位置: 首页 > 教程 > Mac常见问题 > 很多朋友还不是很会使用phpStorm吗?带来phpStorm的正确操作教程,大神小白均可收藏备用

很多朋友还不是很会使用phpStorm吗?带来phpStorm的正确操作教程,大神小白均可收藏备用

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 这种方式进行设置参数或取得参数值,建议是对每个属性都开放一个 gettersetter 方法,这样可以很方便得对传进或传出去的值进行处理,这就是上面我为什么要把成员属性设置置为私有的原因之一

同样的command + n 选择"Getters and Stetters" 然后选择所有属性,它就会把所有的属性设置gettersetter方法,这里要注意的是Personsign是唯一的,不可进行修改,所以咱们要把设置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..." 弹出来可被复写的方法:

然后咱们选择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);
}

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