symfony2 phpStorm自动完成代码,评论,最佳实践

时间:2013-11-11 21:09:30

标签: symfony autocomplete standards phpstorm

我可能几乎没有太一般的问题,如果我有抱歉重复。 (没找到我正在寻找的答案)。

首先,我使用symfony2框架进行开发,我正在考虑购买phpStorm。它不是一个便宜的程序,我不想浪费钱。但我现在喜欢它,所以我想问一下它是否向未来迈出了一大步?

我的第二个主要问题

有时会发生我看不到某些对象方法的自动完成建议......

有什么方法或一些好的做法可以帮助phpStorm了解我正在处理的对象?

我的想法就像我在其他人的代码中看到的那样:

public function updateSomething(User $user

或......

    /**
 * Draws an arc on a starting at a given x, y coordinates under a given
 * start and end angles
 *
 * @param Imagine\Image\PointInterface $center
 * @param Imagine\Image\BoxInterface   $size
 * @param integer                      $start
 * @param integer                      $end
 * @param Imagine\Image\Color          $color
 * @param integer                      $thickness
 *
 * @throws Imagine\Exception\RuntimeException
 *
 * @return DrawerInterface
 */

这些事情是否有帮助,我应该写它们还是只是为了更好的“用户阅读能力”?

1 个答案:

答案 0 :(得分:2)

你的第一个问题是一个通常属于StackOverflow之外的类型,因为它非常主观,没有真正的答案,只有人们的意见。对于它的价值,在我看来PHPStorm值得每一分钱相比a)使用没有IDE /文本编辑器,b)使用免费的Aptana IDE(基于eclipse),这是我在PHPStorm之前尝试的替代品。对我来说,可以节省大量的工作效率,但是一个非常有用的功能是调试器才能正常工作(一旦你使用PHP配置了XDebug)。

回答关于自动完成某些对象方法的第二个问题 - 是的,您提供帮助的示例以及其他使用PHPDoc注释的示例应该使PHPStorm方法自动完成几乎适用于所有情况。这也应该具有清除大多数未定义方法调用的虚假PHPStorm黄色高光的副作用,以便真正的错误更加明显。

至少可以做到最大化方法自动完成:

1。始终在可能/适当的情况下提供方法参数的类型提示 - 有关详细信息,请参阅PHP Type Hinting,例如

public function createUser (UserDetails $userDetails, array $roles)

2。始终给出具有返回值PHPDoc comments(开始/ **)的方法,该方法至少定义方法的@return类型(如果没有混合)和任何数组参数的内容类型(如果没有混合)。 e.g。

/**
 * @param UserDetails $userDetails
 * @param Role[] $roles
 * @return User
 */

3。使用@var的PHPDoc注释来定义类成员变量和局部变量的类型,例如。

class UserManager
{
    /**
     * @var EntityManager
     */
    private $entityManager

    ...

    public function doSomething()
    {
        ...

        /** @var User $user */
        foreach($users as $user)
        {
           ...
        }
...

通常使用PHP类型提示并适当使用PHPDoc是一种好习惯。