<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
    <head>
        <title>NetBeans IDE - PHP Development</title>
        <link rel="stylesheet" href="../../netbeans.css" type="text/css">
        <link rel="stylesheet" type="text/css" href="../../features.css">
        <meta name="description" content="NetBeans IDE - Integrated Tools for PHP Developers">
        <meta http-equiv="content-language" content="en">
        <meta name="author" content="Ruth Kusterer">
    </head>
    <body>
        <h1>PHP Development</h1>
        <p class="xintro"> 
            <img src="../../images_www/v7/3/features/php/php-ide_top.png"
                 alt="PHP development in NetBeans IDE" class="box"><br>
        </p>
        <p class="intro">A dedicated PHP coding environment and complete integration
            with web standards, with full support for HTML5, JavaScript, and CSS3
            development, as described on the <a href="../html5/index.html">HTML5 Web Development Support</a> page.</p>

        <span class="overview-right" id="im2"><img src="/images_www/v7/3/features/php/php-code-completion_small.png"></span>

        <h2>Powerful PHP Source Code Editor</h2>

        <p> The NetBeans PHP editor provides code templates and code generation tools, such
            as "getter and setter" generation, refactoring, such as "instant rename", parameter
            tooltips, hints, and quick fixes, and
            smart code completion.
        </p> 

        <p>Benefit from
            syntactic and semantic code highlighting, pop-up documentation, code
            formating and folding, marking of occurrences and exit points, 
            clever try/catch code completion, smart method parameter pre-filling,
            and rectangular selection.
        </p>

        <div class="line">&nbsp;</div>
        <span id="im1" class="overview-left"><img src="/images_www/v7/3/features/php/php-54-traitcc_small.png"></span>    
        <h2>PHP 5.6 Support </h2>
        <p>NetBeans IDE for PHP offers a number of features specific to
            developing with the latest features of PHP. </p>
        <p>For example, in support of <a href="http://php.net/manual/en/migration56.new-features.php">PHP 5.6</a>, 
            the PHP editor supports variadic functions. For example, in 
            support of <a href="http://php.net/manual/en/migration55.new-features.php">PHP 5.5</a>, the PHP editor
            provides support for the various new language features.
        </p>
        <p>For example, in support of PHP 5.4, you can set up your PHP project to run on PHP's 
            <a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_built">built-in web server</a>. The IDE's PHP code completion supports PHP 5.4 
            array styles such as <a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_array">array dereferencing</a> and 
            <a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_short">short array syntax</a>. 
            NetBeans IDE also recognizes <a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_traits">Traits</a> and <a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_anonymous">anonymous object variables</a> (also called &quot;fluent instantiation&quot;). Finally, NetBeans IDE includes <a href="https://blogs.oracle.com/netbeansphp/entry/php_5_4_support_minor">minor features</a> such as callable type hints, binary notation for integers, and   <code>Class::{expr}()</code> invocation.</p>
    <div class="line">&nbsp;</div>
    <span id="im1" class="overview-right"><img src="/images_www/v7/3/features/php/frameworks.png"></span>
    <h2>Web Frameworks</h2>
    <p>NetBeans IDE supports the following popular web frameworks:
    <ul>
        <li><a href="http://framework.zend.com/">Zend Framework</a>
            (<a href="https://netbeans.org/kb/docs/php/zend-framework-screencast.html">screencast</a>)</li>
        <li><a href="http://symfony.com/">Symfony2 Framework</a></li>
        <li><a href="http://symfony.com/legacy">Symfony1 Framework</a>
            (<a href="https://netbeans.org/kb/docs/php/symfony-screencast.html">screencast</a>)</li>
    </ul>
    <p>Create new PHP projects with these frameworks, run framework commands, navigate from
        controllers (actions) to views, use framework annotations and code completion in the editor,
        and customize settings.</p>
    <div class="line">&nbsp;</div>
    <span id="im3" class="overview-left"><img src="/images_www/v7/3/features/ide-collaboration-hudson-cut.png"></span>
    <h2>Continuous Integration Support </h2>
    <p>NetBeans IDE for PHP has support for continuous integration. Continuous integration is a software 
        development practice involving version control and a specialized server. The specialized server 
        runs scheduled PHPUnit and Code Coverage tests on the software.</p>
    <p>Test results are associated with version control information, so that developers can identify bugs 
        they introduce to the software quickly and easily. The IDE uses&nbsp;<a title="Jenkins PHP job template" target="_blank" href="http://jenkins-php.org/">Template for Jenkins Jobs for PHP Projects</a>, which must be set up with the necessary plugins and tools on the integration server.<br/><br/>
        <a href="https://netbeans.org/kb/docs/php/screencast-continuous-builds.html" class="arr-link">Support for PHP on Continuous Build Servers</a></p>
    <div class="line">&nbsp;</div>
    <span id="im3" class="overview-right"><img src="/images_www/v7/3/features/php/php-project.png"></span>
    <h2>PHP Projects</h2>
    <p> The NetBeans project offers a version of the IDE tailor-made for developing PHP web sites that comprise a variety of scripting and mark-up languages. The PHP editor is dynamically integrated with HTML, JavaScript and CSS editing features.</p>
    <p> Focus on the code and speed up code scanning by excluding individual directories in the Project properties. The NetBeans IDE fully supports iterative development, so testing PHP projects follows the classic patterns familiar to web developers.</p>
    <div class="line">&nbsp;</div>
    <span id="im3" class="overview-left"><img src="/images_www/v7/3/features/php/php-debugger.png"></span>
    <h2>Debugger</h2>
    <p>
        Debug PHP code using Xdebug: You can inspect local variables, set watches, set breakpoints, and evaluate code live. Navigate to declarations, types and files using Go To shortcuts and hypertext links. Use a global PHP include path for all projects or customize it per project.
    </p><p>
        The NetBeans IDE for PHP also offers command-line debugging: The PHP program output appears in a command line display in the IDE itself and you can inspect the generated HTML without having to switch to a browser.
    </p><p>
        You can debug scripts and web pages, either locally or remotely. The NetBeans PHP debugger integration allows you to map server paths to local paths to enable remote debugging.
    </p>
    <h2>See Also</h2>
    <ul class="bigger">
        <li><a href="/community/releases/81/index.html">NetBeans IDE 8.1  Release Page</a> for a list of specific features in the latest stable release.</li>
        <li><a href="../../kb/trails/php.html">PHP and HTML5 Learning Trail</a> for tutorials that will help you get started.</li>
    </ul>
</body>
</html>
