嵌套调用后,PhpStorm无法识别返回类型

时间:2018-01-08 09:45:52

标签: phpstorm

当我在一个对象上进行函数的嵌套调用时,PhpStorm会在一些调用后停止识别该函数。 知道如何解决这个问题或为什么会这样?

该功能突出显示,我收到以下短信(请参阅下面的代码以查看它的确切位置):

  

在主题类中找不到方法addColumn。在学科课程中找不到参考方法。

我的情况:

我从这里使用Table类:github magento2 Table class

和我的安装功能:

$installer = $setup;
$installer->startSetup();
/**
 * @var \Magento\Framework\DB\Ddl\Table $table
 */
$table = null;

    /**
     * Create table 'acc'
     */
    $table = $installer->getConnection()->newTable(
        $installer->getTable('acc')
    )->addColumn(
        'id',
        \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
        null,
        ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true],
        'Entity Id'
    )->addColumn(
        'user',
        \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
        32,
        ['identity' => true, 'unique' => true],
        'User'
    )->addColumn(
        'general',
        \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
        32,
        [],
        'General'
    )->addColumn(... //more columns (let's say that I add 20 columns) - Until here is no problem
    )->addColumn( //then I get here the text highlighted and text message written above the code. - in my case this is the 25th call to the function
        'individual',
        \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
        32,
        [],
        'Individual'
    )->addColumn(
        'created_at',
        \Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
        null,
        ['nullable' => false, 'default' => \Magento\Framework\DB\Ddl\Table::TIMESTAMP_INIT],
        'Created At'
    );

我尝试了什么:

@var \Magento\Framewrok\DB\Ddl\Table $table添加到$table变量。

1 个答案:

答案 0 :(得分:3)

出于性能原因,PhpStorm停止分析链式呼叫at some point。虽然不能肯定地说 - 但大约在25-30连锁店;可能取决于代码复杂性或其他东西。

你可以在这里做的很多 - 你不能从用户端(某些隐藏设置)AFAIK增加这样的限制。

在某个时刻打破链条是走到这里的方式 - 似乎工作正常。不确定你/其他人..但对我来说这是可以接受的解决方案 - 它也可以作为相关列组之间的视觉分离或类似。