While I was pondering creating the Flex/Flash test application for the Demo site, I ran across Flex Test Drive. I remember reading it before and couldn’t remember why I didn’t go through with the example….then I tried connecting to the php web service. The Flex Test Drive gives you three options for a server: Java, PHP and ColdFusion. I don’t have a ColdFusion or Java option on my hosted website, so PHP was the way to go. I also didn’t want to bother installing a web server locally, because I want to post my examples on my site. Because of this, installation is probably not as straight forward as I hoped it would be.
The first part of Flex Test Drive creates the starting application, which you choose the server backend. Since I wanted to use my website as the server, I put in http://demo.deanlogic.com for the Root URL. The example points to a local web server, so this is where I started to diverge from the game plan. The next part was to create a database using MySQL server and then add some basic components to the application. All of that went fine, after a few short hick-ups in the sql statement to populate the tables. The next step is connecting to the database using the PHP remote connection and that’s where I got into trouble.
The PHP remote connection uses Zend AMF, which is part of the Zend Framework. Apparently in Flash Builder 4.5, the integration is even closer. However, part of the setup of the PHP Zend AMF connection adds the Zend Framework to the application directory. Once that is added, you have to updated the amf_config.ini file to point to the framework and library directories. This is were it got a little confusing for me. Since the initial directories are locally on my PC, I didn’t know which directories to use; UNIX or Windows.
[zend] ;set the absolute location path of webroot directory, example: ;Windows: C:\apache\www ;MAC/UNIX: /user/apache/www webroot = /home/users/web/deanlogiccom ;set the absolute location path of zend installation directory, example: ;Windows: C:\apache\PHPFrameworks\ZendFramework\library ;MAC/UNIX: /user/apache/PHPFrameworks/ZendFramework/library zend_path = ZendAMF/Zend/ZendFramework/library [zendamf] amf.production = false amf.directories=services
My first attempt was to use the UNIX directories, but it would end up with not being able to find the include files. I even downloaded the ZendFramework from the Zend site and loaded it up to my site. Nothing seem to work. I even tried altering the gateway.php file to point directly to the directories without using the check code included. Going directly to the gateway.php on my website would show the same error I was getting when connecting. So, I figured I could modify the init file until that error went away. After several attempts at different directory options, I finally saw “Zend Amf Endpoint” on the gateway page. Woo hoo!!
Unfortunately the PHP remote connection still wasn’t working, which is when I noticed that it said something about the release folder and the gateway file. When I initially deployed the Flex application, it was under the bin-debug folder, while the ZendFramework was a few levels higher.
By moving all of the deploy files to the same level as the ZendFramework folder, I finally got the PHP Zend remote connection to work. When the connection works, it uses the EmployeeService to get information from the database to be used in the rest of the Test Drive demonstration.
Hopefully later I get the directory setup so it is a little cleaner. It seems that everything I add just drops into the main folder. The Dreamweaver Widgets did this as did the CSS from the style sheet. I prefer things to be much more organized. But, for now, I’m glad the data connection is working so I can move on with the Test Drive.