Hi - this tutorial was put together by one of PhpED users - we will publish the link to his website when it is up in production (pretty soon). Here it goes - enjoy:
Prerequisites
You've got AMFPHP installed and working as follows...
1. You're able to call a function & return a value in your AMFPHP php code using
the AMFPHP gateway.
2. You're able to call a function & return a value in your AMFPHP code using your
Flex code.
This tutorial was developed using Flex Builder 3; Apache 2.2 and PHP 5.2.8.8 on
Windows XP.
My AMFPHP code is within a folder within the amfphp/services folder. AMFPHP is
within Apache 2.2/htdocs.
There is lots of room for customization in PhpED; file naming; directory
organization etc.
This is a straightline path to get a breakpoint to trigger in your php code when you
invoke it from your Flex code.
SETTING UP PHPED
1. Backup your Apache and PHP folders
2. Download and install PhpED
3. Launch PhpED
4. In the Workspace panel on the left side of the screen
a. Right click on 'New Workspace' and select 'New Project' to launch the 'Project
Settings Wizard'
b. Click 'Next >>'
c. Select ' Web server (Apache or another) used for development is located on this
machine'. Click 'Next >>'
d. Navigate to your 'Document Root:'. In my case, using the standard Apache
install, it is 'C:\Program Files\Apache Software Foundation\Apache2.2\htdocs'.
Click 'Next >>'
e. Click 'Next >>>' on the 'Enter project root directory' leaving the 'Root
directory' as is and the 'Add extra directories...' unchecked.
f. Click 'Next >>>' on the 'Checking php installation' leaving the 'Check php
installation' and 'Check for the latest...' as is.
g. If all is well, the next step of the wizard should be all green checkmarks - it
not...
Try cancelling the wizard; quit PhpED; stop; start Apache and go back to step 4.
If you're not getting all green checkmarks, you may wish to check the forums or
contact Nusphere support.
h. If all green check marks on 'Checking php installation', click 'Next >>>'
g. Click 'Next >>>' on 'Checking debug session' leaving 'Check debug session' selected
h. If all is well, the next step of the wizard should be all green checkmarks, if
not, try the remedial steps suggested in step g
i. Click 'Finish'
j. Click 'Save' to save your project - likely called 'project1.ppj' (it is saved in
the PhpED projects folder)
h. Right click on the 'New Workspace' icon in the Workspace panel to save your
workspace - for now call it 'workspace1'
Save it on your desktop or other folder so you can double click it to launch.
You'll want to have it handy so you can have PhpED running before you launch your
Flex debugging session.
5. Stop and start Apache to ensure changes Wizard made to php.ini take effect.
6. You should now see 'project1' under 'workspace1' and if you expand project1 you
should see the htdocs directory tree.
Navigate to your code in the amfphp/services folder. If you can't find it, you'll
need to remedy this before continuing.
7. Under the the 'Tools/Settings' menu, select 'Run & Debug' in the left panel.
In the right panel, clear the 'Stop on the first line after run' if it is set.
If you don't clear this, each time your Flex app invokes AMFPHP, PhpED will stop in
gateway.php.
8. In the same 'Settings' dialog, select 'IDE/Associations' in the left panel.
In the right panel, select 'HTML', click 'Edit' and delete ',*.html'
In the same right panel, select'PHP5', click edit and add ',*.html' to the list of
extensions.
9. CLick 'OK' to save the settings changes made in steps 7 & 8 above.
10. Navigate to a file in your directory under the Workspace panel, open it, and
place a breakpoint on a line (click on line number) in a function that you'll call
from your Flex code.
The line should be highlighted and a red dot should be to the right of the line
number.
Aside - select IDE shortcuts under IDE in the left panel of the settings dialog,
scroll the right panel down a bit and you'll see the function key shortcuts for the
debugger - these can be remapped - but do that once you've got breakpoints working.
SETTING UP FLEX
1. Edit you 'services-config.xml' file.
2. Navigate to around line 17 where the XML reads '<endpoint uri="http://localhost...'
3. Change this line so instead of '...amfphp/gateway.php"
class="flex.messaging.endpoints.AMFEndpoint"/>
it reads ...amfphp/gateway.php?DBGSESSID=1"
class="flex.messaging.endpoints.AMFEndpoint"/>
4. Save this file and do a 'Clean' on your Project to ensure the changes are in effect.
DEBUGGING
1. Launch your Flex application as you normally would from the IDE and cause it to
invoke the PHP code where the breakpoint is set.
2. PhpED should now flash in the task bar indicating that your breakpoint has been
hit.
Activate the PhpED window.
Hit F9 to continue. (Aside - F9 in PhpED is like F8 in Flex)
3. PhpED has similar functionality to Flex Builder so you can inspect locals,
globals, step through code etc
4. On each call from Flex to AMFPHP you get a couple of lines in the PhpED log file
indicating the debug session has started and completed: the breakpoint remains until
you clear it
.
TROUBLESHOOTING
1. If you're unable to hit the breakpoint from your Flex code, try invoking your php
code from the AMFPHP service browser.
The same breakpoints can be hit from there without the FLEX IDE.
If you can hit your breakpoints this way, then check that your
'services-config.xml' file is per above.
2. If your breakpoint is still not being hit - try the following...
a. In PhpED 'Tools/Settings' menu, select 'Run & Debug' in the left panel and SET
the 'Stop on the first line after run'. Click 'OK'
b. Run the AMFPHP sample code - you should get a breakpoint firing in 'gateway.php'
c. If the above works the problem lurks somewhere in the your configuration of the
FLEX IDE
d. If the above does not work - run through the PhpED project creation again,
creating a new project with the same directory structure, ensuring you get a green
check mark on all tests. If no checkmarks, try checking the PhpED forum or
contacting support.
3. Ensure you have a fault handler to receive FaultEvent's within Flex. The handler
will fire if you did not have PhpED running before trying to run in Flex.
4. To run without PhpED, remove the '?DBGSESSID=1' parameter in your
'services-config.xml' file.