blob: 444a3680db3ebd3bdf11196bc78f7dbb740b75ca [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 alt="Содержимое на этой странице применимо к IDE NetBeans 7.2" class="stamp" src="../../../images_www/articles/72/netbeans-stamp-72-73.png" title="Содержимое на этой странице применимо к IDE NetBeans 7.2">
<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="#php54">Поддержка PHP 5.4</a></li>
<li><a href="#rectangular">Прямоугольное выделение</a></li>
<li><a href="#phpdoc">Поддержка ApiGen</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, Symfony2 и Zend</a></li>
<li><a href="#smarty">Поддержка Smarty</a></li>
<li><a href="#doctrine2">Поддержка Doctrine2</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 href="https://netbeans.org/downloads/index.html" target="_blank">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 href="http://httpd.apache.org/download.cgi" target="_blank">сервер HTTP Apache версии 2.2</a>.<br></td>
</tr>
<tr>
<td class="tbltd1">Отладчик PHP</td>
<td><a href="http://www.xdebug.org" target="_blank">Версия 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<br><img alt="Выделенные ключевые слова PHP" class="margin-around b-all" height="86" src="../../../images_www/articles/72/php/editorguide/keywords.png" width="402"></li>
<li>Константы и "волшебные константы" PHP<br><img alt=""волшебная константа"" class="margin-around b-all" height="20" src="../../../images_www/articles/72/php/editorguide/magic-constant.png" width="341"></li>
<li>Теги HTML, включая атрибуты формы ввода<br><img alt="Выделения HTML в файле PHP" class="margin-around b-all" height="85" src="../../../images_www/articles/72/php/editorguide/html.png" width="574"></li>
<li>Файлы веб-сервера Apache <code>.htaccess</code> или <code>httpd.conf</code><br><img alt="Выделенное содержимое файла httpd.conf" class="margin-around b-bottom b-right" height="182" src="../../../images_www/articles/72/php/editorguide/improvements-in-coloring-1.png" width="537"></li>
<li>Номера PHP</li>
<li>Теги HTML в блоках комментариев PHPDoc<br><img alt="Выделенные номера PHP и теги HTML в блоках PHPDoc" class="margin-around b-right b-bottom" height="238" src="../../../images_www/articles/72/php/editorguide/improvements-in-coloring-2.png" width="319"></li>
<li>Текущая строка отображается на голубом фоне.<br><img alt="Текущая строка, выделенная голубым" class="margin-around b-all" height="89" src="../../../images_www/articles/72/php/editorguide/highlight-selected-line.png" width="409"></li>
<li>При помещении курсора внутрь переменной РНР, функции или класса все случаи их употребления выделяются цветом. <img alt="Переменная выбрана" class="margin-around b-all" height="189" src="../../../images_www/articles/72/php/editorguide/select-variable.png" width="360"></li>
<li>Строки, в которых обнаружены ошибки, подчеркиваются красным.<br><img alt="Выделенная ошибка" class="margin-around b-all" height="54" src="../../../images_www/articles/72/php/editorguide/error.png" width="365"> </li>
</ul>
<br>
<p>В целях изменения параметров выделения выберите <tt>Сервис &gt; Параметры</tt> и перейдите на вкладку &quot;Шрифты и цвета&quot;. Укажите требуемые параметры.</p>
<h2><a name="goToDeclaration"></a>Переход к объявлению</h2>
Функция &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 alt="Использование окна 'Навигатор' для выбора функции" class="margin-around b-top b-right b-bottom" height="145" src="../../../images_www/articles/72/php/editorguide/using-navigator-window.png" width="536"></li>
</ol>
<h2><a name="CodeFolding"></a>Свертывание кода</h2>
<p>Редактор включает функцию сокрытия и отображения по выбору пользователя модулей, классов и функций файла с исходным кодом на языке PHP, редактируемого в настоящий момент. Чтобы свернуть или отобразить часть кода, щёлкните значок - или + слева от кода либо нажмите сочетание клавиш Ctrl+ или Ctrl-. </p><img alt="Свертывание кода как в NB 7.2" class="margin-around" height="378" src="../../../images_www/articles/72/php/editorguide/improved-code-folding-1.png" width="536">
<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 alt="Выделение скобок" class="margin-around b-all" height="259" src="../../../images_www/articles/72/php/editorguide/bracket-highlighting.png" width="367"></li>
</ul>
<h2><a name="instant-rename"></a>Реорганизация с переименованием и мгновенное переименование</h2>
<p>Можно переименовать элемент, например название класса, для всех файлов проекта. При использовании этой функции необходимо просмотреть изменения, прежде чем вносить их. Окно предварительного просмотра показывает каждое местоположение элемента и позволяет исключать переименование отдельных упоминаний элемента.</p>
<p>Реорганизация с переименованием отличается от более старой функции - мгновенного переименования. Мгновенное переименование по-прежнему доступно, но работает только в &quot;непубличных&quot; контекстах, например для переименования переменной внутри метода или переименования закрытых переменных и полей. Мгновенное переименование позволяет переименовывать элемент только в пределах файла и не предоставляет функции окна предварительного просмотра.</p>
<p>Чтобы использовать функцию 'Мгновенное переименование' поместите курсор на имя, которое необходимо изменить и нажмите Ctrl-R. При применении функции 'Мгновенное переименование' к этой переменной выделяются все экземпляры этой переменной или имя функции.</p>
<img alt="Редактор кода PHP после нажатия Ctrl-R" height="361" src="../../../images_www/articles/72/php/editorguide/refactor-ctrlr.png" width="551">
<p> Измените имя один раз, и все остальные его упоминания в файле будут изменены автоматически.</p>
<img alt="В редакторе кода PHP отображается реорганизованное имя переменной" height="359" src="../../../images_www/articles/72/php/editorguide/refactor-afterchange.png" width="551">
<p>Для использования реорганизации с переименованием выберите элемент для переименования и либо нажмите сочетание клавиш Ctrl-R, либо щелкните правой кнопкой мыши и выберите команды Реорганизания &gt; Переименовать. Для переименования элемента откроется диалоговое окно.</p>
<img alt="Диалоговое окно для переименования переменной" class="margin-around" src="../../../images_www/articles/72/php/editorguide/rename-confirm.png">
<p>Переименуйте элемент и нажмите кнопку предварительного просмотра. Откроется окно реорганизации. В этом окне вы найдете каждое упоминание элемента в вашем проекте и примете решение о целесообразности переименования.</p>
<img alt="Окно реорганизации" class="margin-around" src="../../../images_www/articles/72/php/editorguide/refactoring.png">
<p>Дополнительные сведения о реорганизации в связи с переименованием см. экранную демонстрацию <a href="../../docs/php/screencast-rename-refactoring_ru.html">Реорганизация в связи с переименованием и другие усовершенствования редактора в IDE NetBeans 7.0 для PHP</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 + пробел. Контекстно-зависимые предложения отображаются в раскрывающемся списке. Каждому предложению соответствует описание и подсказки по вводу параметров. Содержание списка изменяется по мере ввода новых символов. <br><img alt="Автозавершение кода функции" class="margin-around b-all" height="503" src="../../../images_www/articles/72/php/editorguide/function-cc.png" width="523"></li>
<li>Для получения списка ключевых слов РНР, доступных для текущего контекста, нажмите комбинацию клавиш Ctrl + пробел, не набирая ничего предварительно.
</li>
<li>Для просмотра подсказки относительно переменной достаточно ввести символ &quot;$&quot;. Появится список всех доступных в настоящее время локальных и глобальных переменных. <br> <img alt="Автозавершение кода переменной" class="margin-around b-all" height="476" src="../../../images_www/articles/72/php/editorguide/variable-cc.png" width="437"></li>
</ol>
<h3><a name="abbreviations"></a>Шаблоны и аббревиатуры кода.</h3>
<p>В данном контексте термин &quot;Сокращения&quot; относится к набору предварительно определенных строк символов, которые соответствуют ключевым словам, используемым в языке программирования. Каждое из сокращений связано с каким-либо расширенным текстом, содержащим полное ключевое слово, а также соответствующий ему шаблон кода с подсказками на ввод параметров. Для применения этих функциональных возможностей введите сокращение и нажмите клавишу Tab. </p>
<img alt="Аббревиатура шаблона" class="margin-around b-all" height="51" src="../../../images_www/articles/72/php/editorguide/template-abbr.png" width="98"><br>
<p>Сокращение заменяется соответствующим ключевым словом, к которому предоставляется шаблон кода.</p>
<p><img alt="Развернутый шаблон cls" class="margin-around b-all" height="167" src="../../../images_www/articles/72/php/editorguide/template-expanded.png" width="269"></p>
<p>В шаблоне кода, если курсор помещен в синее поле с фиолетовой границей, это означает, что курсор находится в поле в шаблоне. Введите имя поля или значение. Для всех экземпляров этого поля значение также изменяется. Нажмите клавишу Enter после завершения и курсор переместится к следующему полю (или в положение переменной <code>${cursor}</code> или за пределы шаблона, если отсутствуют дополнительные поля).
</p>
<img alt="Шаблон с выделенным вторым полем" class="margin-around b-all" height="173" src="../../../images_www/articles/72/php/editorguide/template-secondfield.png" width="269">
<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 alt="Список sbbreviations и шаблонов кода, определенных для ним" class="margin-around" height="513" src="../../../images_www/articles/72/php/editorguide/code-template-definitions-list.png" width="536"></li></ol>
<p>Дополнительные свдения см. в разделе <a href="../../docs/php/code-templates_ru.html">Шаблоны кодов в IDE NetBeans для PHP</a>.</p>
<h3><a name="cc-constructors"></a>Автозавершение кода для конструкторов</h3>
<p>После добавления ключевого слова <tt>new</tt> окно автозавершения кода отображается с конструкторами и параметрами для всех доступных классов в проекте.</p>
<img alt="Подсказки автозавершения кода для конструктора" border="1" class="margin-around" height="408" src="../../../images_www/articles/72/php/editorguide/cc-constructor.png" width="600">
<h3><a name="cc-sql"></a>Автозавершение кода SQL</h3>
<p>Отображается автозавершение кода SQL, если строка начинается с ключевого слова SQL &quot;select.&quot; Сначала необходимо выбрать подключение к базе данных.</p>
<img alt="Автозавершение кода, обеспечивающий подключение к базе данных" border="1" class="margin-around" height="384" src="../../../images_www/articles/72/php/editorguide/cc-sql.png" width="475">
<p>Отображаются все подключения к базам данных, зарегистрированные в среде IDE.</p>
<img alt="Все подключения к базам данных, зарегистрированные в среде IDE." class="margin-around" height="185" src="../../../images_www/articles/72/php/editorguide/cc-sql-dbconnections.png" width="554">
<p>После выбора подключения функция автозавершения кода SQL предлагает все таблицы из этого подключения к базе данных. </p>
<p><img alt="Все таблицы в подключении к базе данных списка пожеланий" border="1" class="margin-around" height="384" src="../../../images_www/articles/72/php/editorguide/cc-sql-tables.png" width="494"></p>
<p>Если в таблице существуют столбцы, они также отображаются.</p>
<p><img alt="Столбцы, отображаемые для таблицы" border="1" class="margin-around" height="358" src="../../../images_www/articles/72/php/editorguide/cc-sql-columns.png" width="530"></p>
<p>Автозавершение кода SQL также работает с псевдонимами таблицы.</p>
<img alt="Автозавершение кода SQL, с отображением таблиц в псевдониме hotel" border="1" class="margin-around" height="352" src="../../../images_www/articles/72/php/editorguide/cc-sql-aliases.png" width="537">
<h3><a name="cc-namespaces"></a>Пространства имен РНР 5.3 </h3>
<p>Автозавершение кода поддерживает полностью определенные, частично определенные и неопределенные имена пространств имен из PHP 5.3. Дополнительные сведения см. в нашей <a href="../../docs/php/namespace-code-completion-screencast_ru.html">экранной демонстрации</a>.</p>
<p>В IDE также поддерживается разрешение отсутствующих операторов пространств имен <tt>use</tt>. <em>В пространстве имен,</em> в котором необходимо исправить отсутствующие операторы <tt>use</tt> щелкните правой кнопкой мыши и выберите 'Исправить использования...' или нажмите Ctrl-Shift-I и перейдите в 'Источник' > 'Исправить использования...'. Откроется диалоговое окно с полными именами для каждого необходимого оператора use. Дополнительные свдения см. в разделе <a href="https://blogs.oracle.com/netbeansphp/entry/how_to_fix_your_use">Исправление операторов Use</a>.</p>
<h3><a name="cc-overridden-methods"></a>Переопределенные и реализованные методы</h3>
<p>Автозавершение кода при вызове между членами класса предлагает переопределение или реализацию методов.</p>
<p><img alt="Автозавершение кода для переопределения метода" class="margin-around" height="478" src="../../../images_www/articles/72/php/editorguide/cc_overriden_methods.png" width="600"></p>
<h3><a name="clever-catch-cc"></a>Контекстное завершение конструкций Try/Catch</h3>
<p>Начиная с IDE NetBeans 7.1, завершения кода для операторов <tt>catch</tt> включают только классы, унаследованные от<tt>Exception</tt>.</p>
<p><img alt="В редакторе отображается интеллектуальное автозавершение кода в параметрах конструкций Catch" class="margin-around b-all" height="166" src="../../../images_www/articles/72/php/editorguide/clever-catch-cc.png" width="491"></p>
<h3><a name="annotations">Аннотации</a></h3>
<p>Завершение кода в IDE NetBeans поддерживает следующие типы аннотаций PHP:</p>
<ul>
<li>ApiGen (предыдущие версии аннотаций PHPDoc)</li>
<li>PHPUnit</li>
<li>Doctrine 2 (ORM и ODM)</li>
<li>Symfony 2</li>
</ul>
<p>Каждая аннотация может быть связана с контекстом. IDE NetBeans распознает четыре контекста:</p>
<ul><li>функция</li>
<li>class/interface (тип)</li>
<li>метод</li>
<li>поле</li></ul>
<p>Можно добавить дополнительные аннотации к автозавершению кода в 'Сервис' > 'Параметры' > PHP > 'Аннотации'.</p>
<h3><a name="traits"></a>Признаки PHP 5.4</h3>
<p>Признаками - это механизм повторного использования кода, реализованный в PHP 5.4.0. (Дополнительные сведения о признаках см. в <a href="http://php.net/manual/en/language.oop5.traits.php"> php.net documentation</a>.) В IDE NetBeans распознается синтаксис признаков и завершение кода, включая методы, функции и все элементы, унаследованные или объявленные в признаке. </p><img alt="Автозавершение кода признака" class="margin-around b-all" height="472" src="../../../images_www/articles/72/php/editorguide/php54-traits-1.png" width="435">
</div>
<h2 id="php54">Поддержка PHP 5.4</h2>
<p>Редактор NetBeans для PHP поддерживает определенное число функций, связанных с разработкой с использованием PHP 5.4.</p>
<ul>
<li><a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_array"> Разыменование массивов</a></li>
<li><a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_anonymous"> Анонимные переменные объектов</a></li>
<li><a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_short"> Краткий синтаксис массивов</a></li>
<li><a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_built"> Встроенный веб-сервер</a></li>
<li><a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_traits"> Автозавершение кода для признаков</a></li>
<li><a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_minor">Другие функции</a></li>
</ul>
<h2><a name="rectangular"></a>Прямоугольное выделение</h2>
<p>В IDE NetBeans 7.1 для PHP реализовано действие 'Прямоугольное выделение'. Данная функция полезна в таких случаях, как удаление номеров строк во вставленном коде.</p>
<p>Для активирования прямоугольного выделения нажмите кнопку переключения &quot;Прямоугольное выделение&quot; или комбинацию клавиш Ctrl-Shift-R.</p>
<p><img alt="Редактор, в котором отображается кнопка переключения прямоугольного выделения" class="margin-around b-all" height="321" src="../../../images_www/articles/72/php/editorguide/rec-selec-togglebutton.png" width="600"></p>
<p>Когда прямоугольное выделение активировано, можно использовать эту функцию с помощью мыши или клавиатуры. При использовании клавиатуры поместите символ каретки в угол, удерживайте клавишу SHIFT в нажатом положении и выберите необходимое с помощью клавишей со стрелками.</p>
<p><img alt="Редактор, в котором отображается прямоугольное выделение вставленных номеров строк" class="margin-around b-all" height="289" src="../../../images_www/articles/72/php/editorguide/rec-selec-made.png" width="600"></p>
<p>Если вы набираете текст при выделенной области, текст помещается на каждую строку этой области. Это можно использовать, например, для одновременного изменения модификаторов доступа нескольких полей в классе.</p>
<p><img alt="Редактор с модификатором доступа добавлен ко всем строкам в прямоугольном выделении" class="margin-around b-top b-right" height="342" src="../../../images_www/articles/72/php/editorguide/rec-selec-addtext.png" width="435"></p>
<h2><a name="phpdoc"></a>Поддержка ApiGen</h2>
<p>Встроенная поддержка для ApiGen была добавлена в IDE NetBeans 7.2. Дополнительные сведения см. в экранной демонстрации <a href="../../docs/php/screencast-apigen.html">Создание документации PHP с помощью IDE NetBeans</a>.</p>
<p class="alert"><b>Предупреждение.</b> PHPDocumentor не полностью поддерживает PHP 5.3. Пространства имен и некоторые другие функции 5.3 не задокументированы PHP Documentor.</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 alt="Диалоговое окно полей для инициализации с конструктором" class="margin-around" height="299" src="../../../images_www/articles/72/php/editorguide/generate-constructor-fields.png" width="352"></p>
<p>Можно не выбирать ни одного поля. В этом случае будет создан пустой конструктор без параметров. Если поле — это класс, имеющий свойства, можно либо выбрать отдельные свойства, либо выбрать класс (при этом все свойства класса выбираются автоматически).</p>
<p>Дополнительные сведения приведены в <a href="http://blogs.oracle.com/netbeansphp/entry/generate_constructor_getters_and_setters" target="_blank">записи блога 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 href="http://blogs.oracle.com/netbeansphp/entry/generate_constructor_getters_and_setters" target="_blank">записи блога NetBeans PHP</a> и записи об <a href="http://blogs.oracle.com/netbeansphp/entry/generating_getters_and_setters_improved" target="_blank">улучшенной генерации методов получения и установки</a>.</p>
<h3><a name="generate-overriden-methods"></a>Переопределенные и реализованные методы</h3>
<p>Для создания переопределенных или реализованных методов можно нажать ALT+INSERT (CTRL+I в Mac OS), когда курсор находится внутри определения класса и существует несколько членов класса. В диалоговом окне отображаются методы, которые можно добавить, и показано, будут ли они переопределены или реализованы.</p>
<p><img alt="Диалоговое окно для создания переопределенных методов" class="margin-around" height="520" src="../../../images_www/articles/72/php/editorguide/generate_overriden_methods.png" width="523"></p>
<p>Эта возможность дополняет подсказку &quot;Реализовать все абстрактные методы&quot; и <a href="#cc-overridden-methods">автозавершение кода переопределенных и реализованных методов</a>.</p>
<p>Дополнительные сведения приведены в <a href="http://blogs.oracle.com/netbeansphp/entry/generate_overriden_implemented_methods" target="_blank">записи блога NetBeans PHP</a></p>
</div>
<h2><a name="ParameterHints"></a>Подсказки по вводу параметров </h2>
<p>В редакторе предлагаются пользователю предлагаются подсказки по вводу формальных параметров функции или метода в контексте, в котором была вызвана эта функция или метод.</p>
<ol>
<li>Введите начальные символы функции, которую требуется вызвать. </li>
<li>Нажмите сочетание клавиш Ctrl + пробел. В раскрывающемся списке содержатся контекстно-зависимые предложения с формальными параметрами для каждого из них.<br> <img alt="Список подсказок, зависящих от контекста" class="margin-around" src="../../../images_www/articles/72/php/editorguide/parametr-hint-one.png">
</li>
<li>Выберите требуемое предложение и нажмите ENTER. В текст кода вводится имя выбранной функции, при этом в скобках отображается шаблон для ввода параметров. <br> <img alt="Подсказки параметров для выбранного предложения, зависящего от контекста." class="margin-around" src="../../../images_www/articles/72/php/editorguide/parametr-hint-two.png">
</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 alt="Переменные, объявленные в комментариях" border="1" class="margin-around" height="319" src="../../../images_www/articles/72/php/editorguide/vardoc-basic.png" width="600"> </p>
<p>Для создания комментария, определяющего переменную, можно вставить шаблон кода <tt>vdoc</tt> после табулятора. Имя переменной выделяется и становится доступным для изменения. Повторно нажмите клавишу табулятора для выбора типа.</p>
<p><img alt="Переменная, объявляющая комментарий, созданный шаблоном vdoc" border="1" class="margin-around" height="269" src="../../../images_www/articles/72/php/editorguide/vardoc-template.png" width="600"> </p>
<p>Шаблон кода автоматически устанавливает имя и тип переменной. Если переменная используется после места вставки шаблона, то следующее имя переменной предлагается по умолчанию. Если переменная, используемая после места вставки шаблона, не существует, но переменная была использована выше шаблона, то имя этой предшествующей переменной предлагается по умолчанию. Если IDE NetBeans не удается переменную рядом с использованием шаблона, то по умолчанию задается имя <em>variable</em>.  Тип переменной устанавливается автоматически согласно таким же правилам.</p>
<img alt="Переменная, объявляющая комментарий, созданный шаблоном vdoc с заданными по умолчанию именами и типами переменных" border="1" class="margin-around" height="385" src="../../../images_www/articles/72/php/editorguide/vardoc-template-names.png" width="600">
<h2><a name="errorMessages"></a>Сообщения об ошибках</h2>
<p>В течение ввода данных пользователем редактор анализирует синтаксис кода и отмечает ошибки (подчеркивает ошибочные строки и устанавливает красный круг рядом с каждой из них). Для получения пояснения ошибки щелкните строку, содержащую ошибку, или соответствующий ей красный кружок. Появится всплывающая подсказка с кратким пояснением ошибки. <br> <img alt="Сообщения об ошибках: подсказка над строкой с ошибкой." class="margin-around" src="../../../images_www/articles/72/php/editorguide/error-messaging-m1.png">
</p>
<h2><a name="phpunit"></a>Тестирование с помощью PHPUnit и Selenium</h2>
<p>IDE NetBeans для PHP поддерживает автоматические тесты <a href="http://www.phpunit.de" target="_blank">PHPUnit</a>, включая покрытие кода. Можно использовать группы тестирования в коде.</p>
<p>IDE NetBeans также поддерживает переносимую платформу тестирования Selenium в сочетании с PHPUnit. Подключаемый модуль Selenium доступен из центра обновления. При установке этот подключаемый модуль добавляет сервер Selenium к зарегистрированным серверам среды IDE, а также добавляет параметры тестирования Selenium к меню PHP.</p>
<p>Дополнительные сведения приведены в документе <a href="../../docs/php/phpunit_ru.html">Тестирование с помощью PHPUnit и Selenium</a></p>
<h2 id="spellchecker">Проверка орфографии</h2>
<p>Доступна проверка орфографии. В диалоговом окне &quot;Параметры&quot; можно включать и выключать проверку орфографии для различных языков.</p>
<p><img alt="Диалоговое окно 'Параметры' для проверки орфографии" class="margin-around" height="448" src="../../../images_www/articles/72/php/editorguide/spellchecker-options.png" width="600"></p>
<p>В диалоговом окне &quot;Параметры&quot; можно добавлять и удалять новые словари, а также устанавливать локаль.Для добавления нового словаря необходим файл со словами. Формат файла словаря - список слов, в котором каждое слово находится на отдельной строке. Необходимо сообщить среде NetBeans кодировку файла словаря и указать, для какой локали он будет использоваться. </p>
<p><img alt="Добавление нового словаря к проверке орфографии" class="margin-around" height="180" src="../../../images_www/articles/72/php/editorguide/spellchecker-newdictionary.png" width="600"></p>
<p>Когда функция проверки орфографии находит слово, которого нет в словаре, она подчеркивает слово красной линией. Функция проверки орфографии также добавляет совет по использованию инструмента к словосочетанию &quot;ошибка в слове&quot;. Обратите внимание: текст HTML в файлах РНР также проверяется.</p>
<p><img alt="Ошибки, обнаруженные в тексте HTML в файле PHP" class="margin-around" height="68" src="../../../images_www/articles/72/php/editorguide/spellchecker-html.png" width="600"></p>
<h2><a name="symfony"></a>Поддержка платформ Symfony, Symfony2 и Zend</h2>
<p>Поддержка платформ Symfony, Symfony2 и Zend встроена в редактор PHP. При этом происходит распознавание существующей платформы Symfony и на последней панели мастера создания новых проектов PHP появляется возможность добавления платформы к новым проектам.</p>
<p>В проектах PHP с поддержкой Symfony, Symfony2 или Zend существует возможность запуска команд Symfony или Zend из контекстного меню проекта.</p>
<img alt="Контекстное меню, в котором отображаются команды Symfony" class="margin-around" src="../../../images_www/articles/72/php/editorguide/symfony-contextmenu-commands.png">
<p>Команды интерфейса пользователя позволяют:</p>
<ul>
<li>Фильтровать команды Symfony/Zend (1)</li>
<li>Задавать параметры команды (2)</li>
<li>Выбирать команды (3)</li>
<li> Просматривать контекстные справочные сведения о команде (4) </li>
<li>Предварительно просматривать команду перед исполнением (5)</li>
</ul>
<img alt="Диалоговое окно команд Symfony с аннотациями" class="margin-around" src="../../../images_www/articles/72/php/editorguide/symfony-command-dialog.png">
<p>Список команд зависит от проекта. Это обозначает, что если, например, используется команда Doctrine вместо Propel, то команда Propel в списке представлена не будет, а будет представлена только команда Doctrine. Также доступны все команды из подключаемых модулей Symfony.</p>
<p>Автозавершение кода включает в себя переменные Symfony в представлениях Symfony, переменные Symfony2 в представлениях Symfony2 и переменные Zend в представлениях Zend. </p>
<img alt="Переменные Symfony в автозавершении кода" border="1" class="margin-around" src="../../../images_www/articles/72/php/editorguide/symfony-variables.png">
<p>Также среда IDE обеспечивает навигационные ссылки между различными представлениями и действиями платформ Symfony или Zend. Эти ярлыки были усовершенствованы в NetBeans 6.9. Также шаблоны/файлы автозавершения кода в <em>представлении</em> теперь включают переменные, объявленные в файлах <em>контроллера/действия</em>. Подробности приведены в <a href="http://blogs.oracle.com/netbeansphp/entry/framework_support_improvements" target="_blank">записи блога NetBeans PHP</a>.</p>
<p>Дополнительные сведения об использовании поддержки платформы Zend приведены в <a href="../../docs/php/zend-framework-screencast_ru.html">экранной демонстрации</a> Zend.</p>
<h2><a name="smarty"></a>Поддержка Smarty</h2>
<p>IDE NetBeans включает подключаемый модуль для поддержки платформы Smarty. Эта поддержка включает базовые функции Smarty 3, а именно автозавершение и разделители кода Smarty 3.</p>
<p><img alt="Редактор, в котором отображается базовая поддержка Smarty 3" class="margin-around b-all" height="136" src="../../../images_www/articles/72/php/editorguide/smarty3.png" width="364"></p>
<p>Между поведением Smarty 3 и Smarty 2 можно переключаться в окне &quot;Параметры&quot;. Выберите команды Сервис &gt; Параметры (Предпочтения NetBeans для MacOS), далее PHP и откройте вкладку Smarty. Должен быть установлен подключаемый модуль платформы Smarty.</p>
<p><img alt="Параметры Smarty" class="margin-around" height="480" src="../../../images_www/articles/72/php/editorguide/smarty-options.png" width="586"></p>
<h2 id="doctrine2">Поддержка Doctrine2</h2>
<p>При наличии установленного Doctrine2 ORM и его обязательных пакетов, можно использовать завершение кода IDE NetBeans с функциями Doctrine2 и можно запускать команды Doctrine2 из среды IDE. Необходимо задать путь к запущенному сценарию Doctrine2 в 'Параметры' IDE и для проекта PHP должна быть включена поддержка Doctrine2. Дополнительные сведения см. в разделе <a href="https://blogs.oracle.com/netbeansphp/entry/doctrine2_support_added">Добавлена поддержка Doctrine2</a> в блоге, посвященном PHP NetBeans.</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>