当我在一个对象上进行函数的嵌套调用时,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
变量。
答案 0 :(得分:3)
出于性能原因,PhpStorm停止分析链式呼叫at some point。虽然不能肯定地说 - 但大约在25-30连锁店;可能取决于代码复杂性或其他东西。
你可以在这里做的很多 - 你不能从用户端(某些隐藏设置)AFAIK增加这样的限制。
在某个时刻打破链条是走到这里的方式 - 似乎工作正常。不确定你/其他人..但对我来说这是可以接受的解决方案 - 它也可以作为相关列组之间的视觉分离或类似。