blob: 8f7e3bf6a9a866d06429bd89a5b4f03a19523032 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
-->
<html>
<head>
<title>Среда IDE NetBeans для редактора PHP</title>
<meta name="KEYWORDS" content="NETBEANS, PHP, editor">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="DESCRIPTION" content="NetBeans, PHP editor" >
<link rel="stylesheet" type="text/css" href="../../../netbeans.css" media="screen"></head>
<body>
<h1>Среда IDE NetBeans для редактора PHP: краткий обзор</h1>
<p>Этот документ представляет собой краткий обзор основных функций редактора PHP в среде IDE NetBeans.</p>
<p><strong>Содержание</strong></p><img src="../../../images_www/articles/71/netbeans-stamp.png" class="stamp" width="114" height="114" alt="Содержимое этой страницы относится к среде IDE NetBeans 7.1" title="Содержимое этой страницы относится к среде IDE NetBeans 7.1">
<ul>
<li><a href="#gettingReady">Подготовка</a></li>
<li><a href="#editorLayout">Компоновка экрана среды IDE NetBeans для редактора PHP</a></li>
<li><a href="#SyntaxHighlighting">Выделение синтаксиса</a></li>
<li><a href="#goToDeclaration">Переход к объявлению</a></li>
<li><a href="#Navigator">Навигатор</a></li>
<li><a href="#CodeFolding">Свертывание кода</a></li>
<li><a href="#SmartIndent">Интеллектуальный отступ</a></li>
<li><a href="#Formatting">Форматирование</a></li>
<li><a href="#BracketCompletion">Автозавершение расстановки скобок</a></li>
<li><a href="#instant-rename">Реорганизация с переименованием и немедленное переименование</a></li>
<li><a href="#CodeCompletion">Автозавершение кода</a>
<ul>
<li><a href="#snippets">Фрагменты</a></li>
<li><a href="#contextSensitiveProposals">Контекстно-зависимые предложения</a></li>
<li><a href="#abbreviations">Шаблоны и аббревиатуры кода</a></li>
<li><a href="#cc-constructors">Автозавершение кода в конструкторах</a></li>
<li><a href="#cc-sql">Автозавершение кода SQL</a></li>
<li><a href="#cc-namespaces">PHP 5.3 Пространство имен</a></li>
<li><a href="#cc-overridden-methods">Переопределенные и реализованные методы</a></li>
<li><a href="#clever-catch-cc">Контекстное завершение конструкций Try/Catch</a></li>
</ul>
</li>
<li><a href="#rectangular">Прямоугольное выделение</a></li>
<li><a href="#phpdoc">Поддержка документатора РНР</a></li>
<li><a href="#code-generators">Генерация кода</a>
<ul>
<li><a href="#generate-constructors">Конструкторы</a></li>
<li><a href="#generate-getters-setters">Методы получения и установки</a></li>
<li><a href="#generate-overriden-methods">Переопределенные и реализованные методы</a></li>
</ul></li>
<li><a href="#vartyp-cmnt">Определение типа переменной в комментариях</a></li>
<li><a href="#ParameterHints">Подсказки по вводу параметров</a></li>
<li><a href="#errorMessages">Сообщения об ошибках</a></li>
<li><a href="#phpunit">Тестирование с помощью PHPUnit и Selenium</a></li>
<li><a href="#spellchecker">Проверка орфографии</a></li>
<li><a href="#symfony">Поддержка платформ Symfony и Zend</a></li>
<li><a href="#smarty">Поддержка Smarty</a></li>
</ul>
<p><b>Для работы с этим учебным курсом требуется следующее программное обеспечение и материалы.</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Программное обеспечение или материал</th>
<th class="tblheader" scope="col">Требуемая версия</th>
</tr>
<tr>
<td class="tbltd1"><a target="_blank" href="https://netbeans.org/downloads/index.html">Среда IDE NetBeans</a></td>
<td class="tbltd1">Пакет загрузки PHP</td>
</tr>
<tr>
<td class="tbltd1">Механизм PHP</td>
<td class="tbltd1">Версия 5
</tr>
<tr>
<td class="tbltd1">Веб-сервер</td>
<td>Рекомендуется использовать <a target="_blank" href="http://httpd.apache.org/download.cgi">сервер HTTP Apache версии 2.2</a>.<br></td>
</tr>
<tr>
<td class="tbltd1">Отладчик PHP</td>
<td><a target="_blank" href="http://www.xdebug.org">Версия XDebug 2.0 или выше</a></td>
</tr>
</tbody>
</table>
<h2><a name="gettingReady"></a>Подготовка</h2>
<p>Для успешной разработки и развертывания приложений PHP в среде IDE NetBeans для PHP необходимо предварительно установить и настроить <a href="../../trails/php.html#configuration">требуемое программное обеспечение для разработки на языке PHP</a>. </p>
<h2><a name="editorLayout"></a>Компоновка экрана среды IDE NetBeans для редактора PHP</h2>
<p>Редактор содержит следующие окна:</p>
<ul>
<li>Окно редактора показывает файл, в который вносятся изменения. В редакторе есть вкладки для каждого открытого файла. </li>
<li>В окне &quot;Проекты&quot; отображается список проектов, существующих на настоящий момент времени.</li>
<li>В окне &quot;Файлы&quot; отображаются файлы по каждому проекту.</li>
<li>В окне &quot;Службы&quot; отображаются списки внешних служб, доступных на настоящий момент времени, например баз данных.</li>
</ul>
<p>С помощью сочетания клавиш CTRL+7 можно также открыть окно &quot;Навигатор&quot; на левой панели. &quot;Навигатор&quot; показывает структуру класса РНР, если этот класс открыт в редакторе. Не принадлежащие к классам файлы РНР в окне &quot;Навигатора&quot; не отображаются.</p>
<p>Чтобы открыть справку для одного из этих окон, выделите любой элемент в окне и нажмите клавишу F1.</p>
<h2><a name="SyntaxHighlighting"></a>Выделение синтаксиса </h2>
<p>Редактор обеспечивает выделение синтаксиса для блоков кода на языке PHP, HTML, JavaScript и CSS. </p>
<p>В текущей версии выделяются следующие элементы синтаксиса:</p>
<ul>
<li>Ключевые слова языка PHP </li>
<li>Переменные языка PHP </li>
<li>Константы языка PHP </li>
<li>Теги HTML</li>
<li>Атрибуты формы ввода HTML </li>
<li>Текущая строка отображается на голубом фоне.</li>
<li>При помещении курсора внутрь переменной РНР, функции или класса все случаи их употребления выделяются цветом. </li>
<li>Строки, в которых обнаружены ошибки, подчеркиваются красным. </li>
</ul>
<img src="../../../images_www/articles/71/php/editorguide/syntaxhighlighting.png" alt="Просмотр в окне &quot;Редактор NetBeans для PHP&quot; фрагмента кода с выделенными элементами кода на языках PHP и HTML" class="margin-around"><br>
<p>В целях изменения параметров выделения выберите <tt>Сервис &gt; Параметры</tt> и перейдите на вкладку &quot;Шрифты и цвета&quot;. Укажите требуемые параметры.</p>
<h2><a name="goToDeclaration"></a>Переход к объявлению</h2>
Функция &quot;Переход к объявлению&quot; проводит пользователя к месту применения переменной или функции к строке, где эта переменная или функция объявляется либо инициализируется. Для использования данной функциональности расположите курсор на соответствующей переменной или функции и выберите команды &quot;Навигация&quot; и &quot;Переход к объявлению&quot; из контекстного меню, используйте комбинацию клавиш Ctrl-B/⌘-B или Ctrl-щелчок мыши.
<h2><a name="Navigator"></a>Окно навигатора</h2>
<p>Окно навигатора отображает структуры кода как элементы списка, который показывает структуры РНР текущего активного файла. Если файл содержит любые другие источники кода (например HTML), соответствующие структуры также отображаются в списке. При двойном щелчке функции или переменной в этом списке курсор указывает на объявление этого элемента. </p>
<p class="alert"><b>Внимание!</b>Окно навигатора показывает код РНР только для классов РНР. Оно не может отображать код РНР за пределами класса.</p>
<p>Как правило, список навигатора не содержит вложенных списков, но может содержать вложенные структуры для сложных операторов. Например, оператор объявления класса PHP может быть представлен в виде дерева объявленных элементов класса. </p>
<p>Список динамически обновляется по мере изменения кода пользователем. </p>
<p>Окно &quot;Навигатор&quot; отображается в нижней части левой панели.</p>
<ol>
<li>Чтобы открыть окно навигатора, нажмите Ctrl + 7 или выберите команды &quot;Окно&quot;, &quot;Навигация&quot; и &quot;Навигатор&quot;. Появится дерево, отображающее иерархию структур HTML и структур PHP.</li>
<li>Для перемещения к требуемому элементу дважды щелкните соответствующий узел в списке.
<br> <img src="../../../images_www/articles/71/php/editorguide/navigation.png" alt=" На рисунке представлен пример использования навигатора. Кроме того, показаны примеры свернутых и развернутых классов и функций." class="margin-around"> </li></ol>
<h2><a name="CodeFolding"></a>Свертывание кода</h2>
<p>Редактор включает функцию сокрытия и отображения по выбору пользователя модулей, классов и функций файла с исходным кодом на языке PHP, редактируемого в настоящий момент. Чтобы свернуть или отобразить часть кода, щёлкните значок - или + слева от кода либо нажмите сочетание клавиш Ctrl+ или Ctrl-. </p>
<h2><a name="SmartIndent"></a>Интеллектуальный отступ</h2>
<p>В течение ввода пользователем кода в редакторе выполняется его автоматическое форматирование. </p>
<h2><a name="Formatting"></a>Форматирование</h2>
<p>Для форматирования фрагмента кода с целью упрощения его восприятия выполните следующие действия:</p>
<ol>
<li>Выберите соответствующий фрагмент кода.</li>
<li>В контекстном меню, отображаемом по щелчку правой кнопкой мыши, выберите команду &quot;Форматировать&quot; или нажмите сочетание клавиш ALT+SHIFT+F.</li>
</ol>
<h2><a name="BracketCompletion"></a>Автозавершение расстановки скобок</h2>
<p>В течение ввода пользователем кода в редакторе осуществляется автоматическое добавление и удаление парных скобок и кавычек. </p>
<ul>
<li>После ввода первого элемента добавляется закрывающий элемент парных одиночных (' ') и двойных (&quot; &quot;) кавычек, а также круглых и квадратных скобок.</li>
<li>В конце строки к закрывающей одиночной или двойной кавычке добавляется точка с запятой.</li>
<li>Закрывающая фигурная скобка добавляется после нажатия клавиши ВВОД, что также активирует функцию интеллектуального отступа.</li>
<li>Удаление открывающей одиночной или двойной кавычки, а также круглой или квадратной скобки вызывает автоматическое удаление соответствующего закрывающего символа, но не приводит к удалению точки с запятой в конце строки.
<li>Если курсор установлен на закрывающей скобке (круглой, квадратной или фигурной) соответствующая открывающая скобка выделяется желтым.
<br><img src="../../../images_www/articles/71/php/editorguide/paired-brackets-highlighting.png" alt="Если курсор установлен на закрывающей скобке (круглой или квадратной), соответствующая открывающая скобка выделяется желтым." class="margin-around"></li>
</ul>
<h2><a name="instant-rename"></a>Реорганизация с переименованием и мгновенное переименование</h2>
<p>Можно переименовать элемент, например название класса, для всех файлов проекта. Эта функция требует предварительного просмотра изменений перед их осуществлением. Окно предварительного просмотра показывает каждое местоположение элемента и позволяет исключать переименование отдельных упоминаний элемента.</p>
<p>Реорганизация с переименованием отличается от более старой функции - мгновенного переименования. Мгновенное переименование по-прежнему доступно, но работает только в &quot;непубличных&quot; контекстах, например для переименования переменной внутри метода или переименования закрытых переменных и полей. Мгновенное переименование позволяет переименовывать элемент только в пределах файла и не предоставляет функции окна предварительного просмотра.</p>
<p>Для использования мгновенного переименования поместите курсор на имя, которое необходимо изменить, и нажмите сочетание клавиш Ctrl-R. Если к данной переменной применимо мгновенное переименование, все упоминания этой переменной или имени функции будут выделены цветом.</p>
<img src="../../../images_www/articles/71/php/editorguide/refactor-ctrlr.png" width="551" height="361" alt="Редактор кода PHP после нажатия CTRL+R">
<p> Измените имя один раз, и все остальные его упоминания в файле будут изменены автоматически.</p>
<img src="../../../images_www/articles/71/php/editorguide/refactor-afterchange.png" width="551" height="359" alt="Редактор кода PHP отображает реорганизованное имя переменной">
<p>Для использования реорганизации с переименованием выберите элемент для переименования и либо нажмите сочетание клавиш Ctrl-R, либо щелкните правой кнопкой мыши и выберите команды Реорганизания &gt; Переименовать. Для переименования элемента откроется диалоговое окно.</p>
<img src="../../../images_www/articles/71/php/editorguide/rename-confirm.png" alt="Диалоговое окно для переименования переменной" class="margin-around" >
<p>Переименуйте элемент и нажмите кнопку предварительного просмотра. Откроется окно реорганизации. В этом окне вы найдете каждое упоминание элемента в вашем проекте и примете решение о целесообразности переименования.</p>
<img src="../../../images_www/articles/71/php/editorguide/refactoring.png" alt="Окно рефакторинга" class="margin-around" >
<p>Для получения более подробной информации о реорганизации с переименованием посмотрите видео<a href="../../docs/php/screencast-rename-refactoring.html">Реорганизация с переименованием и другие улучшения редактора в NetBeans IDE 7.0 для РНР</a>.</p>
<h2><a name="CodeCompletion"></a>Автозавершение кода</h2>
<p>Автозавершение кода - общее название для набора функций, которые ускоряют процесс кодирования.</p>
<p>Различают следующие типы автозавершения кода: </p>
<ul>
<li><a href="#snippets">Фрагменты</a></li>
<li><a href="#contextSensitiveProposals">Контекстно-зависимые предложения</a></li>
<li><a href="#abbreviations">Сокращения</a></li>
<li><a href="#cc-constructors">Автозавершение кода в конструкторах</a></li>
<li><a href="#cc-sql">Автозавершение кода SQL</a></li>
<li><a href="#cc-namespaces">PHP 5.3 Пространство имен</a></li>
<li><a href="#cc-overridden-methods">Переопределенные и реализованные методы</a></li>
</ul>
<div class="indent"><h3><a name="snippets"></a>Фрагменты </h3>
<p>С помощью фрагментов автоматически создается код для различных элементов.</p>
<ol>
<li>Выберите команды Инструменты &gt; Палитра &gt; Фрагменты кода. На правой панели появится палитра, содержащая различные элементы интерфейса пользователя.</li>
<li>Перетащите нужный значок из палитры к соответствующему символу кода. Появится диалоговое окно для указания параметров соответствующих элементов. Введите данные.</li>
<li>Код для отображения требуемого элемента будет создан и помещен в выбранное местоположение.</li>
</ol>
<h3><a name="contextSensitiveProposals"></a>Контекстно-зависимые предложения </h3>
<p>В редакторе могут использоваться контекстно-зависимые предложения для автозавершения любого количества следующих начальных символов: </p>
<ul>
<li>Ключевое слово PHP: &quot;if&quot;, &quot;else&quot;, &quot;elseif&quot;, &quot;while&quot;, &quot;switch&quot;, &quot;function&quot; и т.д. </li>
<li>Встроенная функция PHP: &quot;count&quot;, &quot;substr&quot; и т.д.</li>
<li>Предварительно определенная или определяемая пользователем переменная</li>
</ul>
<p>Редактор не только предлагает возможные варианты, но также отображает <a href="#ParameterHints">подсказки по вводу параметров</a>. Для применения функции автозавершения кода выполните следующее: </p>
<ol>
<li>Введите начальные символы требуемой строки. </li>
<li>Нажмите сочетание клавиш Ctrl + пробел. Контекстно-зависимые предложения отображаются в раскрывающемся списке. Каждому предложению соответствует описание и подсказки по вводу параметров. Содержание списка изменяется по мере ввода новых символов. </li>
<li>Для получения списка ключевых слов РНР, доступных для текущего контекста, нажмите комбинацию клавиш Ctrl + пробел, не набирая ничего предварительно.
<br> <img src="../../../images_www/articles/71/php/editorguide/codecompletionabbreviations.png" alt="Список контекстно-зависимых предложений. Каждому предложению соответствует описание и подсказки по вводу параметров." class="margin-around">
</li>
<li>Для просмотра подсказки относительно переменной достаточно ввести символ &quot;$&quot;. Появится список всех доступных в настоящее время локальных и глобальных переменных.
<br><img src="../../../images_www/articles/71/php/editorguide/code-completion-variables.png" alt="Отображение списка переменных при вводе $. Список содержит глобальные переменные PHP определяемые пользователем переменные." class="margin-around"> </li>
</ol>
<h3><a name="abbreviations"></a>Шаблоны и аббревиатуры кода.</h3>
<p>В данном контексте термин &quot;Сокращения&quot; относится к набору предварительно определенных строк символов, которые соответствуют ключевым словам, используемым в языке программирования. Каждое из сокращений связано с каким-либо расширенным текстом, содержащим полное ключевое слово, а также соответствующий ему шаблон кода с подсказками на ввод параметров. Для применения этих функциональных возможностей введите сокращение и нажмите клавишу Tab. </p>
<img src="../../../images_www/articles/71/php/editorguide/abbreviations-type-abbr.png" alt="Ввод сокращения &quot;cls&quot; для ключевого слова &quot;class&quot; " class="margin-around"><br>
<p>Сокращение заменяется соответствующим ключевым словом, к которому предоставляется шаблон кода.</p>
<img src="../../../images_www/articles/71/php/editorguide/abbreviation-unfolded.png" alt="Для определения класса полный текст сокращения отображается с шаблоном кода." class="margin-around"><br>
<p>Для просмотра списка определенных сокращений с шаблонами кода выполните следующее:</p>
<ol>
<li>Выберите путь <tt>Сервис &gt; Параметры &gt; Редактор &gt; Шаблоны кода</tt>. </li>
<li>В раскрывающемся списке &quot;Язык&quot; выберите параметр &quot;PHP&quot;. На экран будет выведен список сокращений PHP с шаблонами кода.</li>
<li>Для добавления определения в список или удаления его из списка используются соответственно кнопки &quot;Создать&quot; или &quot;Удалить&quot;.</li>
<li>Для редактирования определения выберите соответствующую строку и измените текст в поле редактирования, находящемся ниже списка. <br>
<img src="../../../images_www/articles/71/php/editorguide/code-template-definitions-list.png" alt="Список сокращений с шаблонами кода" width="536" height="513" class="margin-around"></li></ol>
<p>Для получения более подробной информации см.<a href="../../docs/php/code-templates.html">Шаблоны кода в NetBeans IDE для РНР</a>.</p>
<h3><a name="cc-constructors"></a>Автозавершение кода для конструкторов</h3>
<p>После добавления ключевого слова <tt>new</tt> окно автозавершения кода отображается с конструкторами и параметрами для всех доступных классов в проекте.</p>
<img src="../../../images_www/articles/71/php/editorguide/cc-constructor.png" width="600" height="408" alt="Подсказки к автозавершению кода для конструктора" class="margin-around" border="1">
<h3><a name="cc-sql"></a>Автозавершение кода SQL</h3>
<p>Отображается автозавершение кода SQL, если строка начинается с ключевого слова SQL &quot;select.&quot; Сначала необходимо выбрать подключение к базе данных.</p>
<img src="../../../images_www/articles/71/php/editorguide/cc-sql.png" height="384" width="475" alt="Функция автозавершения кода предлагает выполнить подключение к базе данных" border="1" class="margin-around">
<p>Отображаются все подключения к базам данных, зарегистрированные в среде IDE.</p>
<img src="../../../images_www/articles/71/php/editorguide/cc-sql-dbconnections.png" alt="Отображаются все подключения к базам данных, зарегистрированные в среде IDE." width="554" height="185" class="margin-around">
<p>После выбора подключения функция автозавершения кода SQL предлагает все таблицы из этого подключения к базе данных. </p>
<p><img src="../../../images_www/articles/71/php/editorguide/cc-sql-tables.png" height="384" width="494" alt="Все таблицы подключения к базе данных &quot;wishlist&quot;" class="margin-around" border="1"></p>
<p>Если в таблице существуют столбцы, они также отображаются.</p>
<p><img src="../../../images_www/articles/71/php/editorguide/cc-sql-columns.png" height="358" width="530" class="margin-around" alt="Столбцы, отображенные для таблицы" border="1"></p>
<p>Автозавершение кода SQL также работает с псевдонимами таблицы.</p>
<img src="../../../images_www/articles/71/php/editorguide/cc-sql-aliases.png" alt="Автозавершение кода SQL отображает таблицу псевдонимов, относящихся к гостинице" height="352" width="537" border="1" class="margin-around">
<h3><a name="cc-namespaces"></a>Пространства имен РНР 5.3 </h3>
<p>Код автозавершения поддерживает полностью определенные, частично определенные и неопределенные имена в пространстве имен PHP 5.3. Дополнительные сведения приведены в <a href="../../docs/php/namespace-code-completion-screencast.html">экранном путеводителе</a>.</p>
<h3><a name="cc-overridden-methods"></a>Переопределенные и реализованные методы</h3>
<p>Автозавершение кода при вызове между членами класса предлагает переопределение или реализацию методов.</p>
<p><img src="../../../images_www/articles/71/php/editorguide/cc_overriden_methods.png" alt="Автозавершение кода предлагает переопределение метода" width="600" height="478" class="margin-around"></p>
<h3><a name="clever-catch-cc"></a>Контекстное завершение конструкций Try/Catch</h3>
<p>Начиная с версии NetBeans IDE 7.1, автозавершение кода для операторов <tt>catch</tt> включает только классы, которые наследуются от<tt>Exception</tt>.</p>
<p><img src="../../../images_www/articles/71/php/editorguide/clever-catch-cc.png" alt="Редактор, показывающий автозавершение кода в параметрах catch" width="491" height="166" class="margin-around b-all"></p>
</div>
<h2><a name="rectangular"></a>Прямоугольное выделение</h2>
<p>NetBeans IDE 7.1 для РНР внедряет функцию прямоугольного выделения. Данная функция полезна в таких случаях, как удаление номеров строк во вставленном коде.</p>
<p>Для активирования прямоугольного выделения нажмите кнопку переключения &quot;Прямоугольное выделение&quot; или комбинацию клавиш Ctrl-Shift-R.</p>
<p><img src="../../../images_www/articles/71/php/editorguide/rec-selec-togglebutton.png" alt="Редактор, показывающий кнопку переключения &quot;Прямоугольное выделение&quot;" width="600" height="321" class="margin-around b-all"></p>
<p>Когда прямоугольное выделение активировано, можно использовать эту функцию с помощью мыши или клавиатуры. При использовании клавиатуры поместите курсор в угол, удерживайте нажатой клавишу SHIFT и выделите необходимый фрагмент с помощью клавиш стрелок.&nbsp;</p>
<p><img src="../../../images_www/articles/71/php/editorguide/rec-selec-made.png" alt="Редактор, показывающий прямоугольное выделение вставленных номеров строк" width="600" height="289" class="margin-around b-all"></p>
<p>Если вы набираете текст при выделенной области, текст помещается на каждую строку этой области. Это можно использовать, например, для одновременного изменения модификаторов доступа ко многим полям класса.&nbsp;</p>
<p><img src="../../../images_www/articles/71/php/editorguide/rec-selec-addtext.png" alt="Редактор с модификатором доступа, добавленным ко всем полям в прямоугольной выделенной области." width="435" height="342" class="margin-around b-top b-right"></p>
<h2><a name="phpdoc"></a>Поддержка документатора РНР</h2>
<p>В среду IDE NetBeans 7.0 добавлена встроенная поддержка для документатора РНР. Для получения более подробной информации см. видео <a href="screencast-phpdoc.html">Автоматические создание документации РНР с помощью среды IDE NetBeans</a>.</p>
<p class="alert"><b>Внимание:</b>Документатор РНР не полностью поддерживает РНР 5.3. Документатор РНР не обрабатывает пространства имен и некоторые другие функции версии 5.3.</p>
<h2><a name="code-generators"></a>Генераторы кодов</h2>
<p>При нажатии сочетания клавиш ALT+INSERT (CTRL+I в Mac OS) открывается меню со всеми возможными генераторами кода. Список генераторов кода зависит от контекста. Он зависит от позиции курсора в коде в момент нажатия сочетания клавиш. В зависимости от позиции в коде, можно генерировать подключение к базе данных, таблицы базы данных, текст для проверки, и другие элементы. В этом разделе рассмотрены следующие генераторы кода:</p>
<ul>
<li><a href="#generate-constructors">Конструкторы</a></li>
<li><a href="#generate-getters-setters">Методы получения и установки</a></li>
<li><a href="#generate-overriden-methods">Переопределенные и реализованные методы</a></li>
</ul>
<div class="indent">
<h3><a name="generate-constructors"></a>Конструкторы</h3>
<p>Для создания конструкторов нужно нажать сочетание клавиш ALT+INSERT (CTRL+I в Mac OS), когда курсор находится внутри тела класса, но не внутри функций. При выборе пункт &quot;Создать... Конструктор&quot; открывается диалоговое окно со списком полей, которые можно инициализировать в конструкторе. Имена полей используются в качестве имен параметров конструктора.</p>
<p><img src="../../../images_www/articles/71/php/editorguide/generate-constructor-fields.png" alt="Диалоговое окно выбора полей для инициализации в конструкторе" width="352" height="299" class="margin-around"></p>
<p>Можно не выбирать ни одного поля. В этом случае будет создан пустой конструктор без параметров. Если поле &mdash; это класс, имеющий свойства, можно либо выбрать отдельные свойства, либо выбрать класс (при этом все свойства класса выбираются автоматически).</p>
<p>Дополнительные сведения приведены в <a target="_blank" href="http://blogs.sun.com/netbeansphp/entry/generate_constructor_getters_and_setters">записи блога NetBeans PHP</a></p>
<h3><a name="generate-getters-setters"></a>Методы получения и установки</h3>
<p>Для создания методов получения и установки можно использовать сочетание клавиш ALT+INSERT (CTRL+I на Mac), когда курсор находится внутри тела класса, и выбрать пункт &quot;Метод получения&quot;, &quot;Метод установки&quot; или &quot;Методы получения и установки&quot;. Отображаются только возможные варианты функций. Например, если для всех доступных свойств уже созданы методы установки, отображается только вариант создания функций получения.</p>
<p>При выборе пункта &quot;Создать&quot; ... &quot;Метод получения&quot;, &quot;Метод установки&quot; и &quot;Методы получения и установки&quot; отображается диалоговое окно со свойствами, для которых можно создать метод получения или установки. Свойства отображаются в виде дерева. При выборе родительского класса автоматически выбираются все его свойства.</p>
<p>Метод получения или установки можно назвать в соответствии с нотацией getName или get_name.</p>
<p>Дополнительные сведения приведены в исходной <a target="_blank" href="http://blogs.sun.com/netbeansphp/entry/generate_constructor_getters_and_setters">записи блога NetBeans PHP</a> и записи об <a target="_blank" href="http://blogs.sun.com/netbeansphp/entry/generating_getters_and_setters_improved">улучшенной генерации методов получения и установки</a>.</p>
<h3><a name="generate-overriden-methods"></a>Переопределенные и реализованные методы</h3>
<p>Для создания переопределенных или реализованных методов можно нажать ALT+INSERT (CTRL+I в Mac OS), когда курсор находится внутри определения класса и существует несколько членов класса. В диалоговом окне отображаются методы, которые можно добавить, и показано, будут ли они переопределены или реализованы.</p>
<p><img class="margin-around" src="../../../images_www/articles/71/php/editorguide/generate_overriden_methods.png" alt="Диалог создания переопределенных методов" width="523" height="520"></p>
<p>Эта возможность дополняет подсказку &quot;Реализовать все абстрактные методы&quot; и <a href="#cc-overridden-methods">автозавершение кода переопределенных и реализованных методов</a>.</p>
<p>Дополнительные сведения приведены в <a target="_blank" href="http://blogs.sun.com/netbeansphp/entry/generate_overriden_implemented_methods">записи блога NetBeans PHP</a>.</p>
</div>
<h2><a name="ParameterHints"></a>Подсказки по вводу параметров </h2>
<p>В редакторе предлагаются пользователю предлагаются подсказки по вводу формальных параметров функции или метода в контексте, в котором была вызвана эта функция или метод.</p>
<ol>
<li>Введите начальные символы функции, которую требуется вызвать. </li>
<li>Нажмите комбинацию клавиш Ctrl + пробел. В раскрывающемся списке содержатся контекстно-зависимые предложения с формальными параметрами для каждого из них.<br>
<img src="../../../images_www/articles/71/php/editorguide/parametr-hint-one.png" alt="Список контекстно-зависимых подсказок" class="margin-around">
</li>
<li>Выберите требуемое предложение и нажмите клавишу ВВОД. В текст кода вводится имя выбранной функции, при этом в скобках отображается шаблон для ввода параметров. <br>
<img src="../../../images_www/articles/71/php/editorguide/parametr-hint-two.png" alt="Подсказки по вводу параметров для выбранного контекстно-зависимого предложения" class="margin-around">
</li>
</ol>
<h2><a name="vartyp-cmnt"></a>Определение типа переменной в комментариях</h2>
<p>Переменную и ее тип можно определить в комментарии. Комментарий должен иметь формат <em>/* @<strong>var</strong> $variable type */ </em>. Если комментарий составлен правильно, тег <em><strong>var</strong></em> отображается полужирным шрифтом.</p>
<p><img src="../../../images_www/articles/71/php/editorguide/vardoc-basic.png" height="319" width="600" alt="Переменные, объявленные в комментариях" class="margin-around" border="1"> </p>
<p>Для создания комментария, определяющего переменную, можно вставить шаблон кода <tt>vdoc</tt> после табулятора. Имя переменной выделяется и становится доступным для изменения. Повторно нажмите клавишу табулятора для выбора типа.</p>
<p><img src="../../../images_www/articles/71/php/editorguide/vardoc-template.png" height="269" width="600" alt="Объявляющий переменную комментарий, созданный шаблоном vdoc" class="margin-around" border="1"> </p>
<p>Шаблон кода автоматически устанавливает имя и тип переменной. Если переменная используется после места вставки шаблона, то следующее имя переменной предлагается по умолчанию. Если переменная, используемая после места вставки шаблона, не существует, но переменная была использована выше шаблона, то имя этой предшествующей переменной предлагается по умолчанию. Если среда IDE NetBeans не может обнаружить переменную вблизи от места использования шаблона, то именем по умолчанию является <em>variable</em>.&nbsp; Тип переменной устанавливается автоматически согласно таким же правилам.</p>
<img src="../../../images_www/articles/71/php/editorguide/vardoc-template-names.png" alt="Объявляющий переменную комментарий, созданный шаблоном vdoc, с именами и типами переменных по умолчанию" class="margin-around" border="1" height="385" width="600">
<h2><a name="errorMessages"></a>Сообщения об ошибках</h2>
<p>В течение ввода данных пользователем редактор анализирует синтаксис кода и отмечает ошибки (подчеркивает ошибочные строки и устанавливает красный круг рядом с каждой из них). Для получения пояснения ошибки щелкните строку, содержащую ошибку, или соответствующий ей красный кружок. Появится всплывающая подсказка с кратким пояснением ошибки. <br>
<img src="../../../images_www/articles/71/php/editorguide/error-messaging-m1.png" alt="Передача сообщений об ошибке: всплывающая подсказка над содержащей ошибку строкой" class="margin-around">
</p>
<h2><a name="phpunit"></a>Тестирование с помощью PHPUnit и Selenium</h2>
<p>Среда IDE NetBeans для РНР поддерживает автоматизированные тесты <a target="_blank" href="http://www.phpunit.de">PHPUnit</a>, включая покрытие кода. Начиная со среды IDE NetBeans 7.1 можно использовать в коде группы тестирования.</p>
<p>Среда IDE NetBeans также поддерживает переносимую платформу тестирования Selenium в комбинации с PHPUnit. Подключаемый модуль Selenium доступен из центра обновления. При установке этот подключаемый модуль добавляет сервер Selenium к зарегистрированным серверам среды IDE, а также добавляет параметры тестирования Selenium к меню PHP.</p>
<p>Дополнительные сведения приведены в документе <a href="./phpunit.html">Тестирование с помощью PHPUnit и Selenium</a></p>
<h2 id="spellchecker">Проверка орфографии</h2>
<p>Доступна проверка орфографии. В диалоговом окне &quot;Параметры&quot; можно включать и выключать проверку орфографии для различных языков.</p>
<p><img src="../../../images_www/articles/71/php/editorguide/spellchecker-options.png" class="margin-around" alt="Диалоговое окно &quot;Параметры&quot; для проверки орфографии" width="600" height="448"></p>
<p>В диалоговом окне &quot;Параметры&quot; можно добавлять и удалять новые словари, а также устанавливать язык.Для добавления нового словаря необходим файл со словами. Формат файла словаря - список слов, в котором каждое слово находится на отдельной строке. Необходимо сообщить среде NetBeans кодировку файла словаря и для какого языка он будет использоваться. </p>
<p><img src="../../../images_www/articles/71/php/editorguide/spellchecker-newdictionary.png" class="margin-around" alt="Добавление нового словаря к проверке орфографии" width="600" height="180"></p>
<p>Когда функция проверки орфографии находит слово, которого нет в словаре, она подчеркивает слово красной линией. Функция проверки орфографии также добавляет совет по использованию инструмента к словосочетанию &quot;ошибка в слове&quot;. Обратите внимание: текст HTML в файлах РНР также проверяется.</p>
<p><img src="../../../images_www/articles/71/php/editorguide/spellchecker-html.png" alt="Ошибки, найденные в тексте HTML в файле РНР" width="600" height="68" class="margin-around"></p>
<h2><a name="symfony"></a>Поддержка платформ Symphony и Zend</h2>
<p>Поддержка платформ Symfony и Zend встроена в редактор PHP. При этом происходит распознавание существующей платформы Symfony и на последней панели мастера создания новых проектов PHP появляется возможность добавления платформы к новым проектам.</p>
<p>В проектах PHP с поддержкой Symfony или Zend существует возможность запуска команд Symfony или Zend из контекстного меню проекта.</p>
<img src="../../../images_www/articles/71/php/editorguide/symfony-contextmenu-commands.png" alt="Контекстное меню отображает команды Symfony" class="margin-around">
<p>Команды интерфейса пользователя позволяют:</p>
<ul>
<li>Фильтровать команды Symfony/Zend (1)</li>
<li>Задавать параметры команды (2)</li>
<li>Выбирать команды (3)</li>
<li> Просматривать контекстные справочные сведения о команде (4) </li>
<li>Предварительно просматривать команду перед исполнением (5)</li>
</ul>
<img src="../../../images_www/articles/72/php/editorguide/symfony-command-dialog.png" class="margin-around" alt="Диалог команды Symfony с комментариями">
<p>Список команд зависит от проекта. Это обозначает, что если, например, используется команда Doctrine вместо Propel, то команда Propel в списке представлена не будет, а будет представлена только команда Doctrine. Также доступны все команды из подключаемых модулей Symfony.</p>
<p>Автозавершение кода включает в себя переменные Symfony в представлениях Symfony и переменные Zend в представлениях Zend. </p>
<img src="../../../images_www/articles/72/php/editorguide/symfony-variables.png" alt="Переменные Symfony в коде автозавершения." class="margin-around" border="1">
<p>Также среда IDE обеспечивает навигационные ссылки между различными представлениями и действиями платформ Symfony или Zend. Эти навигационные ссылки были улучшены в среде NetBeans 6.9. Кроме того, автозавершение кода в шаблонах/файлах <em>view</em> теперь включает в себя переменные, определенные в файлах <em>controller/action</em>. Подробности приведены в <a target="_blank" href="http://blogs.sun.com/netbeansphp/entry/framework_support_improvements">записи блога NetBeans PHP</a>.</p>
<p>Дополнительные сведения об использовании поддержки платформы Zend приведены в <a href="../../docs/php/zend-framework-screencast.html">экранном путеводителе</a> Zend.</p>
<h2><a name="smarty"></a>Поддержка Smarty</h2>
<p>В среде IDE NetBeans 7.1 имеется подключаемый модуль для поддержки платформы Smarty. Эта поддержка включает базовые функции Smarty 3, а именно автозавершение и разделители кода Smarty 3.</p>
<p><img src="../../../images_www/articles/71/php/editorguide/smarty3.png" alt="Редактор, показывающий базовую поддержку Smarty 3" width="364" height="136" class="margin-around b-all"></p>
<p>Между поведением Smarty 3 и Smarty 2 можно переключаться в окне &quot;Параметры&quot;. Выберите команды Сервис &gt; Параметры (Предпочтения NetBeans для MacOS), далее PHP и откройте вкладку Smarty. Должен быть установлен подключаемый модуль платформы Smarty.</p>
<p><img src="../../../images_www/articles/71/php/editorguide/smarty-options.png" alt="Параметры Smarty" width="586" height="480" class="margin-around"></p>
<h2><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20PHP%20Editor%20Guide">Мы ждем ваших отзывов</a></h2>
<br style="clear:both;" >
<p>Оставить комментарии и предложения, обратиться за поддержкой и получить сведения о последних достижениях в области возможностей разработки для PHP с помощью среды IDE NetBeans можно в <a href="../../../community/lists/top.html">списке рассылки users@php.netbeans.org</a>.</p>
<p><a href="../../trails/php.html">Возврат к учебной карте по PHP</a></p>
</body>
</html>