// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= NetBeans IDE 6.9-7.0のPHPエディタ(プレビュー)
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: NetBeans IDE 6.9-7.0のPHPエディタ(プレビュー) - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, NetBeans IDE 6.9-7.0のPHPエディタ(プレビュー)

|===
|Roman Stroblが、NetBeans IDE 6.9から7.0で使用できる新しいPHP機能の開発ビルドを紹介します。PHPプロジェクトは、ローカルWebサーバーやリモート・サイト(FTP経由)に自動的にデプロイしたり、スクリプトをコマンド行で実行できます。NetBeans IDE 6.9から7.0のPHPエディタは、コード補完、構文の強調表示、出現箇所のマーク、リファクタリング、コード・テンプレート、ドキュメントのポップアップ、コード・ナビゲーション、エディタの警告、およびタスク・リストなどのすべての標準機能をサポートします。

作成者: Roman Strobl
時間: 5:10
link:https://netbeans.org/files/documents/4/2028/php_demo.zip[+ダウンロード+] (6.35MB)


*関連リンク*

* link:../../../kb/docs/php/editor-screencast.html[+PetrによるNetBeans IDE 6.9-7.0 PHPエディタのスクリーンキャスト+]
* link:../../../features/php/index.html[+PHP向けのNetBeans IDE+]
* link:../../../kb/trails/php.html[+PHPの学習+]
* link:http://blogs.oracle.com/netbeansphp/[+PHP向けのNetBeansブログ+]
link:../../../about/contact_form.html?to=3&subject=Feedback: Roman's 6.5 PHP Editor screencast[+このチュートリアルに関するご意見をお寄せください+]
 |

フラッシュ・プレイヤを読み込むことができません。

 
|===
