PHP is a back-end language for web development. PHP code needs to be executed by a PHP compiler in a web server. A web server will run and compile the code to the corresponding HTML code. In Netbeans IDE, we can create a PHP project with a local web server for development and test.
PHP: Hypertext Preprocessor
PHP has a complete set of object-oriented programming features including support for classes, abstract classes, interfaces, inheritance, constructors, cloning, exceptions, and more.
OS X is bundled with PHP but it is normally a little behind the latest stable version.
A few things that you may need to learn about PHP before diving into the language:
-
If a web page contains PHP code, its file extension must be php.
-
PHP code is not visible to front-end users.
-
PHP code can be placed anywhere in the source code of a web page.
-
PHP code must be enclosed with a pair of special tags
<?php
?>
The following will show you how to create a PHP project with NetBeans 8.2 and an xampp installation for Windows.
Launch XAMPP
If you haven’t have xampp installed, install xampp.
Launch the control panel of xampp. Start Apache service.
Display the PHP Errors
Error output is very useful during development, but it could be very dangerous in production environments. PHP is configured by default in a way which displays compilation errors in development environments and hide them in production environments.
As recommended by PHP:
1
2; This directive controls whether or not and where PHP will output errors,
3; notices and warnings too. Error output is very useful during development, but
4; it could be very dangerous in production environments. Depending on the code
5; which is triggering the error, sensitive information could potentially leak
6; out of your application such as database usernames and passwords or worse.
7; For production environments, we recommend logging errors rather than
8; sending them to STDOUT.
9; Possible Values:
10; Off = Do not display any errors
11; stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
12; On or stdout = Display errors to STDOUT
13; Default Value: On
14; Development Value: On
15; Production Value: Off
16; http://php.net/display-errors
17display_errors = OffPHP Initialization File
In xampp, the PHP initialization file, php/php.ini, from the xampp directory, contains the following line which enables the errors as xampp constitutes a development environment:
1display_errors = OnTo turn off the errors, replace Off with On.
Enable errors in production environments
In a production environment, errors are hidden by default. If you don’t have write permission to php.ini, you can still enable error displaying for a page by add the following PHP snippet.
1<?php
2 error_reporting(E_ALL);
3 ini_set('display_errors', TRUE);
4 ini_set('display_startup_errors', TRUE);
5?>
Launch NetBeans
Start NetBeans IDE. Verify the HTML5 and PHP plugins are active by the menu path Tools->Plugins.
Create a New Project
Follow the menu path: File -> New Project
In New Project dialog box,
-
Select `PHP in Categories
-
Select
PHP applicationin Projects -
Click Next
In Name and Location: Make a name ‘MyWebApp’
-
Browse and choose a folder for project sources. For example, C:/Documents/C430/MyWebApp
-
Select a PHP version (PHP 7.0)
Click Next twice and Finish.
Configure the Project
In the Projects tab, right-click MyWebApp. Choose Properties.
Run Configuration
Click Run Configuration in the Categories column.
-
Run As:
Script(run in command line) -
Uncheck
Use default PHP interpreter -
Click Browse button to navigate to php.exe in your xampp installation folder. For example, if your xampp directory is in drive L, then the path of php.exe should be: L:\xampp\php\php.exe
-
In the field ‘Index File:', enter
index.php
-
In the field “Arguments”, enter
debug=true
-
In the field “PHP options”, enter
-a
Configuring sources
Click Sources in the Categories column. On the right,
-
Leave
Project FolderandSource Folderas it is. -
Check
Copy files from Sources Folder to another location -
Copy to Folder: L:\xampp\htdocs\MyWebApp (J is the drive letter where contains your XAMPP directory.)
-
Check
Copy files on project open
Insert a New PHP Web Page
Right-click the node Sources Files under MyWebApp in the Projects window.
Follow the selection: New -> PHP Web Page...
Enter index for File Name. Press Finish.
Edit index.php
Edit the source of index.php to the following:
1<!DOCTYPE html>
2<html>
3 <head>
4 <title>My Home Page</title>
5 <meta charset="UTF-8">
6 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
7 <link href="styles/main.css" rel="stylesheet" type="text/css"/>
8 </head>
9
10 <body>
11
12 <?php
13 //A PHP variable must begin with a $ sign.
14 $msg = "Hello PHP";
15 $nums = array(10, 2, 30);
16 $msgs = array(
17 "Monday" => 10,
18 "Tuesday" => 20,
19 "Wednesday" => 30
20 );
21 ?>
22
23 <section>
24 <h1>
25 <?php echo($msg); //print a variable ?>
26 </h1>
27
28 <div id="list">
29 <ol>
30 <?php
31 foreach ($msgs as $key => $value) {
32 echo "<li>";
33 echo "$key: $value" . " hours";
34 echo "</li>";
35 }
36 ?>
37 </ol>
38 </div>
39 </section>
40
41 <script>
42 $('h1').mouseover(function () {
43 $(this).toggleClass("lookone");
44 });
45 </script>
46
47
48 </body>
49</html>
50{% endhighlight %}
51
52<hr>
53
54## Insert and Edit a New Stylesheet File *main.css*
55
56`index.php` imports style sheets from an external css file `main.css`. In the following, we create such a file.
57
58- Make a new folder "styles" in the node `Source Files` of MyWebApp.
59
60- Right-click styles node to create a new `Cascading Style sheet...`
61
62- Name the file `main.css`.
63
64- Add the following style sheets to `main.css`
65
66<div class="highlight"><pre style="background-color:#eed;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-php" data-lang="php"><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1</span>body{
67<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2</span> text-rendering: optimizeLegibility;
68<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3</span> background-color: #fff;
69<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4</span> margin: 0;
70<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5</span> padding: 0;
71<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6</span>}
72<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7</span>section {
73<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8</span> margin: 0 auto;
74<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9</span> width: 80%;
75<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10</span> padding: 1em;
76<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11</span> border: 1px seagreen solid;
77<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12</span> border-radius: 0.5em;
78<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13</span>}
79<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14</span>h1 {
80<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15</span> border-bottom: 1px seagreen solid;
81<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16</span>}
82<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17</span>.lookone {
83<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18</span> color: burlywood;
84<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19</span> font-family: "Goudy Bookletter 1911", sans-serif;
85<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20</span> font-stretch: ultra-expanded;
86<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21</span>}
87<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22</span>
88<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23</span>#list li:hover {
89<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24</span> background-color: burlywood;
90<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25</span>}
91<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">26</span>
92<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">27</span>#formarea,#tablearea {
93<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">28</span> width: 1200px;
94<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">29</span> margin: 0 auto;
95<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">30</span> margin-top: 50px;
96<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">31</span> padding: 10px;
97<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">32</span> background-color: antiquewhite;
98<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">33</span> border-radius: 20px;
99<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">34</span>}
100<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">35</span>
101<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">36</span>#response {
102<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">37</span> font-weight: bold;
103<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">38</span> color: lightcoral;
104<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">39</span>}
105<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">40</span>
106<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">41</span>label {
107<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">42</span> display:block;
108<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">43</span> padding-top: 10px;
109<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">44</span>}
110<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">45</span>{% endhighlight %}
111<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">46</span>
112<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">47</span>
113<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">48</span>
114<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">49</span><<span style="color:#8b008b;font-weight:bold">hr</span>>
115<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">50</span>
116<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">51</span>
117<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">52</span>## Launch the Site MyWebApp
118<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">53</span>
119<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">54</span>Now we can test the site by launching MyWebApp in a web browser.
120<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">55</span>
121<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">56</span>- Start a web browser window or tab.
122<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">57</span>
123<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">58</span>- In the address bar, enter the url:
124<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">59</span>
125<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">60</span>http://localhost:81/MyWebApp
126<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">61</span>
127<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">62</span>- The page should be similar to
128<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">63</span>
129<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">64</span>
130<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">65</span><<span style="color:#8b008b;font-weight:bold">figure</span>>
131<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">66</span> <<span style="color:#8b008b;font-weight:bold">img</span> <span style="color:#658b00">src</span>=<span style="color:#cd5555">"/assets/2017-02-28-create-php-project-netbeans/indexpage.PNG"</span>/>
132<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">67</span></<span style="color:#8b008b;font-weight:bold">figure</span>>
133<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">68</span>
134<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">69</span>
135<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">70</span>
136<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">71</span>## Test the PHP Page
137<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">72</span>
138<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">73</span>To test any change with `index.php`, simply reload the page in the browser window.
139<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">74</span>
140<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">75</span><<span style="color:#8b008b;font-weight:bold">hr</span>>
141<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">76</span>
142<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">77</span>## Workout
143<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">78</span>
144<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">79</span>
145<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">80</span>
146<span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">81</span><<span style="color:#8b008b;font-weight:bold">hr</span>></code></pre></div>
Share this post
Twitter
Facebook
LinkedIn
Email