Автозаполнение для объектов PHP с классами в PDT / Netbeans?

Когда я определяю объект класса, используя новый, подобный этому

$blah = new Whatever();

Я получаю автозаполнение за $ blah. Но как мне это сделать, если в качестве параметра функции используется $ blah? Без автозаполнения я неполон.

Редактировать: Как мне это сделать, если он включен, и PDT или Netbeans не могут его понять? Есть ли способ объявить типы для переменных в PHP?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
8
0
6 694
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте передать определение класса параметра в функцию:

function myFunction(Whatever $blah) {
}

это работает, но теперь я расширил вопрос, надеюсь, вы не против! Спасибо за отличный ответ, он уже помогает.

Dan Rosenstark 24.12.2008 01:26

А, и насчет "Edit": я действительно не знаю, как сделать это элегантно. Но моя установка Eclipse + PDT хорошо разрешает параметры класса в подобных случаях.

maxnk 24.12.2008 01:28

Хорошо, если никто не может победить это - очень возможно, но, возможно, есть какой-нибудь удобный способ сделать это - я дам вам лучший ответ. Попробуйте Netbeans, я только что перешел с PDT ... вы можете копать.

Dan Rosenstark 24.12.2008 01:30

Спасибо за совет, я обязательно попробую Netbeans. Честно говоря, я еще не видел PHP в NB, только java и ruby.

maxnk 24.12.2008 01:37

Хм .. только что попробовал это в NetBeans 6.5, и он работает. Я создал класс Sample с несколькими переменными, поместил его в отдельный файл, включил этот файл в свой сценарий, создал переменную $ sample с помощью new () и передал эту переменную в функцию с определением типа. И у меня есть автозаполнение для этой переменной внутри функции ...

maxnk 24.12.2008 01:53

А теперь я сомневаюсь в своей любимой PHP IDE :(

maxnk 24.12.2008 02:00

Хорошо, вы выиграли - я сделаю свой следующий проект в NetBeans :) Также обратите внимание на эту тему: netbeans.org/issues/show_bug.cgi?id=146248 - надеюсь, что они добавят что-то вроде / * @var variableName * / в NetBeans в будущих выпусках.

maxnk 24.12.2008 02:42

Я делаю свой следующий проект на Ruby, так что мы в расчете.

Dan Rosenstark 24.12.2008 02:45

maxnk, проверьте мой новый ответ ниже, теперь, когда вы используете Netbeans :)

Dan Rosenstark 24.12.2008 20:01
Ответ принят как подходящий

Метод в первом комментарии называется «подсказкой типа», но вы должны использовать это с умом. Лучшее решение - 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-> не дает вам автозаполнения.

Dan Rosenstark 28.12.2008 19:35

Я только что попробовал это в Netbeans 6.9.1, и он отлично работает. На мой взгляд, проще, чем принятый ответ, кажется, что поддержка php улучшилась с момента добавления комментария Яра.

henrik 11.08.2010 14:19

Другие вопросы по теме