Когда я определяю объект класса, используя новый, подобный этому
$blah = new Whatever();
Я получаю автозаполнение за $ blah. Но как мне это сделать, если в качестве параметра функции используется $ blah? Без автозаполнения я неполон.
Редактировать: Как мне это сделать, если он включен, и PDT или Netbeans не могут его понять? Есть ли способ объявить типы для переменных в PHP?






Попробуйте передать определение класса параметра в функцию:
function myFunction(Whatever $blah) {
}
А, и насчет "Edit": я действительно не знаю, как сделать это элегантно. Но моя установка Eclipse + PDT хорошо разрешает параметры класса в подобных случаях.
Хорошо, если никто не может победить это - очень возможно, но, возможно, есть какой-нибудь удобный способ сделать это - я дам вам лучший ответ. Попробуйте Netbeans, я только что перешел с PDT ... вы можете копать.
Спасибо за совет, я обязательно попробую Netbeans. Честно говоря, я еще не видел PHP в NB, только java и ruby.
Хм .. только что попробовал это в NetBeans 6.5, и он работает. Я создал класс Sample с несколькими переменными, поместил его в отдельный файл, включил этот файл в свой сценарий, создал переменную $ sample с помощью new () и передал эту переменную в функцию с определением типа. И у меня есть автозаполнение для этой переменной внутри функции ...
А теперь я сомневаюсь в своей любимой PHP IDE :(
Хорошо, вы выиграли - я сделаю свой следующий проект в NetBeans :) Также обратите внимание на эту тему: netbeans.org/issues/show_bug.cgi?id=146248 - надеюсь, что они добавят что-то вроде / * @var variableName * / в NetBeans в будущих выпусках.
Я делаю свой следующий проект на Ruby, так что мы в расчете.
maxnk, проверьте мой новый ответ ниже, теперь, когда вы используете Netbeans :)
Метод в первом комментарии называется «подсказкой типа», но вы должны использовать это с умом. Лучшее решение - phpDoc.
/**
* Some description of function behaviour.
*
* @param Whatever $blah
*/
public function myFunction($blah)
{
$blah->
// Now $blah is Whatever object, autocompletion will work.
}
Вы также можете использовать встроенный комментарий phpDoc, который делает то же самое.
public function myFunction($blah)
{
/* @var $blah Whatever */
$blah->
// Now $blah is Whatever object, autocompletion will work.
}
Алан, вы говорите, что это работает в PDT, потому что в Netbeans class Joe {public $ a; общедоступный $ b; } / * @var $ joe Joe * / $ joe-> не дает вам автозаполнения.
Я только что попробовал это в Netbeans 6.9.1, и он отлично работает. На мой взгляд, проще, чем принятый ответ, кажется, что поддержка php улучшилась с момента добавления комментария Яра.
это работает, но теперь я расширил вопрос, надеюсь, вы не против! Спасибо за отличный ответ, он уже помогает.