Введите определяемый пользователем объект приведения в PHP для автоматического завершения Netbeans
Я знаю, что этот вопрос задавался много раз, но в моем случае это просто для удобства при написании кодов в Netbeans. Я работал с библиотекой PHPExcel, и поскольку в ней слишком много методов, я не могу запомнить их все. Поэтому мне нужна функция автозаполнения netbeans. Проблема в том, что netbeans выполняет автозаполнение только до определенного предела.
Например:-
protected function _read_excel(PHPExcel $excel)
{
$sheet = $excel->getSheet(0); // Works perfectly fine here because I type cast the argument
$rows = $sheet->getRowIterator(); // Works fine here too
foreach($rows as $row)
{
$cols = $row->getCellIterator(); // By the time I reach here, Netbeans stops auto-completing. Probably due to Netbeans don't know what class it is.
}
}
Если бы только я мог это сделать: -
$cols = (PHPExcel_Worksheet_CellIterator) $row->getCellIterator();
Я знаю, что PHP не может этого сделать, но это есть обходной путь для этого?
2 answers
Вам нужно начать комментировать свой код с помощью комментариев типаPHPDoc, Netbeans будет использовать их для автоматического завершения.
protected function _read_excel(PHPExcel $excel)
{
$sheet = $excel->getSheet(0); // Works perfectly fine here because I type cast the argument
$rows = $sheet->getRowIterator(); // Works fine here too
foreach($rows as $row)
{
/**
* @var PHPExcel_Worksheet_CellIterator $cols
*/
$cols = $row->getCellIterator(); // Now netbeans will know what class it is.
}
}
Если вы предпочитаете, вы также можете использовать "встроенные" блоки документов:-
/** @var PHPExcel_Worksheet_CellIterator $cols */
Или, в последней версии NetBeans, порядок выглядит обратным и имеет на один меньше *
/* @var $cold PHPExcel_Worksheet_CellIterator */
Однако вы должны убедиться, что netbeans знает, где найти PHPExcel. Мой ответ здесь дает некоторые рекомендации по этому поводу, если вам это нужно.
Спасибо @vascowhite за то, что просветил меня.
Поэтому ради других, чтобы объявить переменную в комментариях (в Netbeans), просто введите vdoc
, за которым следует клавиша TAB.
Исходя из этого, формат на самом деле @var $variablename ClassName
.
Кроме того, для цикла foreach
необходимо объявить переменную вне цикла.
Пример:
protected function _read_excel(PHPExcel $excel)
{
$sheet = $excel->getSheet(0); // Works perfectly fine here because I type cast the argument
$rows = $sheet->getRowIterator(); // Works fine here too
/* @var $row PHPExcel_Worksheet_Row */
foreach ( $rows as $row )
{
/* @var $cols PHPExcel_Worksheet_CellIterator */
$cols = $row->getCellIterator(); // Now netbeans will know what class it is.
}
}