<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/templates/default/atom.css" type="text/css" ?>

<feed 
   xmlns="http://www.w3.org/2005/Atom"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <link href="http://kevinvaughan.com/feeds/atom.xml" rel="self" title="Kevin Vaughan" type="application/atom+xml" />
    <link href="http://kevinvaughan.com/"                        rel="alternate"    title="Kevin Vaughan" type="text/html" />
    <link href="http://kevinvaughan.com/rss.php?version=2.0"     rel="alternate"    title="Kevin Vaughan" type="application/rss+xml" />
    <title type="html">Kevin Vaughan</title>
    <subtitle type="html">Random thoughts on random things...</subtitle>
    
    <id>http://kevinvaughan.com/</id>
    <updated>2007-09-18T03:12:37Z</updated>
    <generator uri="http://www.s9y.org/" version="1.1.2">Serendipity 1.1.2 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>

    <entry>
        <link href="http://kevinvaughan.com/archives/18-PHP,-SOAP,-WSDL,-Pain..html" rel="alternate" title="PHP, SOAP, WSDL, Pain." />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-09-18T02:36:01Z</published>
        <updated>2007-09-18T03:12:37Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=18</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=18</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/5-Code" label="Code" term="Code" />
    
        <id>http://kevinvaughan.com/archives/18-guid.html</id>
        <title type="html">PHP, SOAP, WSDL, Pain.</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                After <a href="http://kevinvaughan.com/archives/16-The-new-wsdl2php-WSDLInterpreter-Out-of-beta!.html">WSDLInterpreter moved out of beta</a> just under a month ago, it's been getting a lot of use.  I started this project because I wasn't pleased with the results I was getting from other wsdl2php solutions, and the native SoapClient class certainly has a lot of shortcomings that I've <a href="http://kevinvaughan.com/pages/wsdl-interpreter.php">briefly outlined already</a>.  Some more things have come up in PHP's native SoapClient for what seems like some fairly basic usage, however.<br />
<br />
The biggest issue so far seems to be (not) applying namespacing to deep wsdl objects. This one seems to work nearly uniformly for most of the other major languages' soap clients, but not PHP.  An example of this is if I have class A with a member variable B (of type class B), with both classes defined by the wsdl, and class A is the parameter to the soap call, then class A will be properly namespaced but the member element B will not, and in the case of extended classes (for example, using class C which extends B as the value for $A->B), typing is not correct in most situations either.  This causes problems on the server side, as the objects aren't marshaled in properly which then typically affects the responses returned.  PHP's <a onclick="javascript:urchinTracker('/extlink/us.php.net/manual/en/function.soap-soapvar-construct.php');" href="http://us.php.net/manual/en/function.soap-soapvar-construct.php">SoapVar</a> can help you get around this by passing in a wrapped object instead of the native object, but this functionality should be the default rather than having to write methods to iterate through the objects being passed in to the soap call to ensure that all of the type information is properly set.  With PHP being a weakly typed language, this is somewhat understandable from the native language perspective.  However, when you venture in to the realm of web service calls, you are now dealing with a different language and need to respect its specifications in order to get back reliable results.<br />
<br />
There is another problem with name spacing and with the structure of the native soap requests that seems to vary from many other languages' native soap clients, but I'm still investigating that to see what workarounds might be available.<br />
<br />
A new release of WSDLInterpreter to address the first issue (and the second, if it ends up being worthy of addressing) is forthcoming.  I plan on putting out an unstable release with these fixes and ask for support in testing it against all of the various wsdl's and web services that you all are using, as one thing remains true in the world of wsdl - standards are still 'evolving'. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/17-BaseApp-1.0.0a5-Minor-update-Deployable-to-providers!.html" rel="alternate" title="BaseApp 1.0.0a5 - Minor update: Deployable to providers!" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-08-23T04:58:01Z</published>
        <updated>2007-08-23T15:26:52Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=17</wfw:comment>
    
        <slash:comments>7</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=17</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/6-Zend-Framework" label="Zend Framework" term="Zend Framework" />
    
        <id>http://kevinvaughan.com/archives/17-guid.html</id>
        <title type="html">BaseApp 1.0.0a5 - Minor update: Deployable to providers!</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Tonight marks a minor update to BaseApp, 1.0.0a5.  Many users of BaseApp have requested direct support for deploying the archive into a hosting provider where they are not able to have some of the files out of the web space.  While the security of this is not as good as having everything except the html directory outside of the document root, it is a common occurrence and not addressing this situation could be more hazardous for some users without proper guidance.  This update provides an index.php in the root directory, and .htaccess files in subdirectories to restrict direct code access or access to other files.  It is recommended that you delete the html directory if you plan on deploying in this manner, and to read the comments in the index.php bootstrap to better understand this deployment.<br />
<br />
<a onclick="javascript:urchinTracker('/download/projects/zend-framework/baseapp-1.0.0a5.tgz');" href="http://kevinvaughan.com/projects/zend-framework/baseapp-1.0.0a5.tgz" title="BaseApp 1.0.0a5"><img src="http://kevinvaughan.com/_images/download.jpg" border="0" /></a><br />
Download this update to BaseApp, v1.0.0a5, and get started today! 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/16-The-new-wsdl2php-WSDLInterpreter-Out-of-beta!.html" rel="alternate" title="The new wsdl2php - WSDLInterpreter: Out of beta!" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-08-23T04:53:22Z</published>
        <updated>2007-08-23T04:57:13Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=16</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=16</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/5-Code" label="Code" term="Code" />
    
        <id>http://kevinvaughan.com/archives/16-guid.html</id>
        <title type="html">The new wsdl2php - WSDLInterpreter: Out of beta!</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Based on the continual positive feedback I've received on the latest version of WSDLInterpreter, I've decided to release it with some minor fixes as the first stable release, v1.0.0.  Download it today using the button below and get started using the only full php5, oop-oriented wsdl2php solution publicaly available, or read more about <a href="http://kevinvaughan.com/pages/wsdl-interpreter.php" title="The new wsdl2php - WSDLInterpreter">the benefits of WSDLInterpreter as your wsdl2php solution</a>.<br />
<br />
<a onclick="javascript:urchinTracker('/extlink/wsdl2php-interpreter.googlecode.com/files/WSDLInterpreter-v1.0.0.tgz');" href="http://wsdl2php-interpreter.googlecode.com/files/WSDLInterpreter-v1.0.0.tgz" title="Download the new wsdl2php - WSDLInterpreter v1.0.0"><img src="http://kevinvaughan.com/_images/download.jpg" border="0" /></a> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/15-Fall-is-a-busy-time.html" rel="alternate" title="Fall is a busy time" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-08-22T04:28:30Z</published>
        <updated>2007-08-22T04:28:30Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=15</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=15</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/1-Life" label="Life" term="Life" />
    
        <id>http://kevinvaughan.com/archives/15-guid.html</id>
        <title type="html">Fall is a busy time</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                The past two weeks have had a lot of work to them, but none of that work has been on the projects I'm focused on here.  I can tell by the emails that you all are still visiting despite the delays, and for that I thank you.  I will be back soon enough with more on BaseApp and using Zend Framework, and, as no more bug reports have been coming in for WSDLInterpreter for sometime, the first full release of the best wsdl2php solution available at this moment in time. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/14-Inside-BaseApp,-Part-1-Zend-Framework-and-the-Bootstrap.html" rel="alternate" title="Inside BaseApp, Part 1 - Zend Framework and the Bootstrap" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-08-09T04:06:58Z</published>
        <updated>2007-08-12T05:08:59Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=14</wfw:comment>
    
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=14</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/6-Zend-Framework" label="Zend Framework" term="Zend Framework" />
    
        <id>http://kevinvaughan.com/archives/14-guid.html</id>
        <title type="html">Inside BaseApp, Part 1 - Zend Framework and the Bootstrap</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <em>This entry is about the use of <a onclick="javascript:urchinTracker('/extlink/framework.zend.com/');" href="http://framework.zend.com/">Zend Framework</a> and <a href="http://kevinvaughan.com/pages/zend-framework-baseapp.html">BaseApp</a>, an application layer built on top of the framework libraries.</em><br />
<br />
One of the things I noticed as I was getting started with the Zend Framework libraries was the <a onclick="javascript:urchinTracker('/extlink/en.wikipedia.org/wiki/Code_smell');" href="http://en.wikipedia.org/wiki/Code_smell">smell</a> coming from all of the bootstrap files... a lot of setting of variables, adding directories to this or that, creating various objects for random tasks, and a growing urge to do more and more setup in this bootstrap.  This is BAD practice for a few reasons, but here are the two big ones for me:<br />
<ul><li><strong>Maintainability</strong> - did we not learn from php4?  Non-OOP code just gets worse and worse over time.  It gets unorganized, it gets unfocused, and soon the bootstrap, just like the index.php scripts of old, begin to do too much for their role.</li><li><strong>Reuse</strong> - which sounds like a better idea: copying the code over and modifying the section that you want to act differently?  or extending a class and only writing new code where its applicable?  If you found yourself nodding in approval to the first option, buy <a onclick="javascript:urchinTracker('/extlink/www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672/ref=pd_bbs_sr_1/103-6137259-0759838?ie=UTF8&amp;s=books&amp;qid=1186622936&amp;sr=1-1');" href="http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672/ref=pd_bbs_sr_1/103-6137259-0759838?ie=UTF8&s=books&qid=1186622936&sr=1-1">this book</a> for good insight into why the second option will make your life much easier.</li></ul><br />
BaseApp minimizes the bootstrap to a very simple form: set the application path, instantiate the main application class, call any special configuration methods of that object, then execute the main method of the application object.  In the included example index.php, this is 5 lines of code.  The application object, BaseApp_Loader, handles all of the specific setup that you otherwise see in bootstrap files.<br />
<br />
So what about BaseApp_Loader?  What does it do?  Why is it better than a typical bootstrap?<br />
<ul><li><strong>XML Configuration</strong> - Uses Zend_Config_Xml to load an application level configuration file.  Now if you want to launch a second copy of a site, for example, you can use the same exact code libraries and point at different configuration file to use different databases, etc.  By using an xml configuration and capturing exceptions through the main application setup process, simple errors like typos won't bring your site crashing to 500 Internal Server Error.</li><li><strong>Method Based Configuration</strong> - Each type of configuration is split off into its own method within BaseApp_Loader, so if you want to setup logging to do something other than Zend_Log, or configure database usage differently than the default Zend_DB implementation, you can override the individual method in an extension of the BaseApp_Loader class.  Each of these methods receives a Zend_Config object rather than referencing the application's config directly, allowing for easy overrides by subclasses while minimizing the impact of the underlying structure.</li><li><strong>Zend_View Choices</strong> - Included in the default implementation are Zend_View and BaseApp_View_Smarty (a Smarty based view).  BaseApp allows you to decide what view you want to use in a way that is flexible, and you can add your own if you want (by following BaseApp_View_Smarty as an example, if you need).</li><li><strong>Easy Registration</strong> - For modules, views, log control, database control, helpers and more.  Utilizing these powerful constructs provided by the Zend Framework libraries is extremely easy using the BaseApp_Loader's methods or overriding them with your own.</li></ul> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/13-BaseApp-1.0.0a4-Admin-abstraction,-Auth-integration.html" rel="alternate" title="BaseApp 1.0.0a4 - Admin abstraction, Auth integration" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-08-07T03:27:02Z</published>
        <updated>2007-08-07T03:27:02Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=13</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=13</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/6-Zend-Framework" label="Zend Framework" term="Zend Framework" />
    
        <id>http://kevinvaughan.com/archives/13-guid.html</id>
        <title type="html">BaseApp 1.0.0a4 - Admin abstraction, Auth integration</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Thanks for everyone's patience last week.  Some other projects took precedence and I couldn't get as much time into BaseApp as I would have liked.  There were some <a href="http://kevinvaughan.com/archives/10-BaseApp-update-1.0.0a3-phpdoc,-Xend_Layout,-complex-error-handling.html">good comments</a> on the last release though, and I'm seeing some good download numbers.  I've taken some of those comments and integrated them in; other's didn't make as much sense to carry over into the main source, but thats why this is <em>Base</em>App.  It thrills me to see people taking it and using it as a quick start for their own application, modifying it to fit their needs.  This week has a couple of main additions:  <ul><li>In previous versions, the authentication functions were commented out as I struggled to decide on what ORM to integrate.  I really like <a onclick="javascript:urchinTracker('/extlink/propel.phpdb.org/');" href="http://propel.phpdb.org/">propel</a>, but I don't want users of BaseApp to have to have command line access.  There are a couple of <a onclick="javascript:urchinTracker('/extlink/doctrine.pengus.net/trac/');" href="http://doctrine.pengus.net/trac/">other</a> up-and-comers, and hopefully they'll get to a stable release point soon.  In the meantime, I've implemented auth using the Zend_DB libraries, so at least you can see a sample simple integration of those for adding users.</li><li>Speaking of the auth module, I've also used the user login form to show examples of the power of the Xend_Layout request.</li><li>Finally, I've started an administration abstraction.  The main controller for this is AdminController in the default module, and each module reports its own admin functionality.  No ACL is in place for any of this yet.</li></ul><br />
Next version:  <ul><li>ACL integration into the administrative functionality.</li><li>Example administrative controls using the auth module to add/edit/delete users.</li></ul> <br />
 Additionally, check back often for an "Inside BaseApp" series of posts that will be aimed at describing everything from setting up BaseApp to why particular object structures were chosen.<br />
<br />
Thanks again to everyone for their continued support.  You can grab the latest version from <a href="http://kevinvaughan.com/pages/zend-framework-baseapp/downloads.html">BaseApp Downloads</a>. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/12-Almost-to-v1-A-new-wsdl2php-in-WSDLInterpreter-1.0-RC2.html" rel="alternate" title="Almost to v1 - A new wsdl2php in WSDLInterpreter - 1.0 RC2" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-08-06T04:33:18Z</published>
        <updated>2007-08-06T04:33:18Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=12</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=12</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/5-Code" label="Code" term="Code" />
    
        <id>http://kevinvaughan.com/archives/12-guid.html</id>
        <title type="html">Almost to v1 - A new wsdl2php in WSDLInterpreter - 1.0 RC2</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                The first formal release of WSDLInterpreter is approaching as almost all of the emails I'm receiving have changed from bug reports to acclamations.  Thanks for everyone's support and help along the way.  If you haven't tried WSDLInterpreter out yet, and are looking for an alternative to the other wsdl2php solutions out there, you can read about the <a href="http://kevinvaughan.com/pages/wsdl-interpreter.php">benefits of WSDLInterpreter here<a onclick="javascript:urchinTracker('/extlink/wsdl2php-interpreter.googlecode.com/files/WSDLInterpreter-v1.0.0rc2.tgz');"/>, or <a href="http://wsdl2php-interpreter.googlecode.com/files/WSDLInterpreter-v1.0.0rc2.tgz">download RC2 from the google code project</a>.<br />
<br />
To everyone waiting on the next pass of BaseApp, check back tomorrow.  Updates include administration abstraction, Zend_DB, Zend_ACL, and more, I'm just doing a final look over of the new stuff before I release it. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/11-WSDLInterpreter-OOP-wsdl2php-Release-Candidate-1.html" rel="alternate" title="WSDLInterpreter - OOP wsdl2php - Release Candidate 1" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-07-27T04:42:56Z</published>
        <updated>2007-07-27T04:42:56Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=11</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=11</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/5-Code" label="Code" term="Code" />
    
        <id>http://kevinvaughan.com/archives/11-guid.html</id>
        <title type="html">WSDLInterpreter - OOP wsdl2php - Release Candidate 1</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Been having problems with the other wsdl2php solutions out there?  Then give WSDLInterpreter a try, and help test things out before the impending release of the first stable version!<br />
<br />
Read about the <a href="http://kevinvaughan.com/pages/wsdl-interpreter.php">benefits of the WSDLInterpreter wsdl2php solution</a>, or <a onclick="javascript:urchinTracker('/extlink/wsdl2php-interpreter.googlecode.com/files/WSDLInterpreter-v1.0.0rc1.tgz');" href="http://wsdl2php-interpreter.googlecode.com/files/WSDLInterpreter-v1.0.0rc1.tgz">download WSDLInterpreter v1.0.0 RC1 right away from the google code project</a>. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/10-BaseApp-update-1.0.0a3-phpdoc,-Xend_Layout,-complex-error-handling.html" rel="alternate" title="BaseApp update: 1.0.0a3 - phpdoc, Xend_Layout, complex error handling" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-07-23T04:48:24Z</published>
        <updated>2007-07-26T12:52:53Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=10</wfw:comment>
    
        <slash:comments>11</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=10</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/6-Zend-Framework" label="Zend Framework" term="Zend Framework" />
    
        <id>http://kevinvaughan.com/archives/10-guid.html</id>
        <title type="html">BaseApp update: 1.0.0a3 - phpdoc, Xend_Layout, complex error handling</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                This week's update to BaseApp includes:<br />
<ul><br />
<li>Inclusion of phpdoc into all BaseApp classes</li><br />
<li>Integration of Xend_Layout with example layout usage</li><br />
<li>Implementation of complex error handling, allowing for easy module specific error controller usage</li><br />
<li>Minor modifications to smarty inclusion to allow for easier usage</li><br />
</ul><br />
As always, you can download from the <a href="http://kevinvaughan.com/pages/zend-framework-baseapp/downloads.html">BaseApp downloads page</a>, or pull down the latest version <a onclick="javascript:urchinTracker('/download/projects/zend-framework/baseapp-1.0.0a3.tgz');" href="http://kevinvaughan.com/projects/zend-framework/baseapp-1.0.0a3.tgz">directly</a>.  The next integration will be an ORM layer and an administration abstraction. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/9-WSDLInterpreter-OOP-wsdl2php-Beta-release!.html" rel="alternate" title="WSDLInterpreter - OOP wsdl2php - Beta release!" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-07-18T06:21:59Z</published>
        <updated>2007-07-23T05:00:04Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=9</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=9</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/5-Code" label="Code" term="Code" />
    
        <id>http://kevinvaughan.com/archives/9-guid.html</id>
        <title type="html">WSDLInterpreter - OOP wsdl2php - Beta release!</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                After receiving some helpful feedback and testing on various WSDLs that weren't being satisfied by the alpha version of WSDLInterpreter, I'm happy to package up and release the beta version, now with its <a href="http://kevinvaughan.com/pages/wsdl-interpreter.php">own page</a> on here that describes the benefits of it and a link to the download from the google code project.<br />
<br />
Try out <a onclick="javascript:urchinTracker('/extlink/wsdl2php-interpreter.googlecode.com/files/WSDLInterpreter-v1.0.0b.tgz');" href="http://wsdl2php-interpreter.googlecode.com/files/WSDLInterpreter-v1.0.0b.tgz">WSDLInterpreter v1.0.0b</a> today, or get started by reading the <a href="http://kevinvaughan.com/pages/wsdl-interpreter.php">benefits of it over other wsdl2php</a> solutions! 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/8-BaseApp-update-1.0.0a2.html" rel="alternate" title="BaseApp update: 1.0.0a2" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-07-16T04:05:17Z</published>
        <updated>2007-07-16T04:44:20Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=8</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=8</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/6-Zend-Framework" label="Zend Framework" term="Zend Framework" />
    
        <id>http://kevinvaughan.com/archives/8-guid.html</id>
        <title type="html">BaseApp update: 1.0.0a2</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Minor update today for BaseApp.  Updates include:<br />
<ul><br />
<li>Changed Smarty integration to extend Zend_View_Abstract instead of implement the base interface</li><br />
<li>Removed the free-form class autoloader and replaced it with basic Zend_Loader to promote better coding standards and portability</li><br />
<li>Various small tweaks to move towards being in line with ZF coding standards (phpdoc to come soon!).</li><br />
<li>Updates to the BaseApp information pages</li><br />
</ul><br />
<br />
You can always get the latest version of BaseApp from the <a href="http://kevinvaughan.com/pages/zend-framework-baseapp/downloads.html">BaseApp downloads page</a>, or pull down the latest version <a onclick="javascript:urchinTracker('/download/projects/zend-framework/baseapp-1.0.0a2.tgz');" href="http://kevinvaughan.com/projects/zend-framework/baseapp-1.0.0a2.tgz">directly</a>.<br />
<br />
Thanks to <a onclick="javascript:urchinTracker('/extlink/naneau.nl/');" href="http://naneau.nl/">Naneau</a>, <a onclick="javascript:urchinTracker('/extlink/www.spotsec.com/');" href="http://www.spotsec.com/">SpotSec</a> and other visitors of #zftalk on irc.freenode.net for the continual ZF conversation!  
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/7-BaseApp-An-application-core-layer-built-on-Zend-Framework.html" rel="alternate" title="BaseApp - An application core layer built on Zend Framework" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-07-14T06:22:36Z</published>
        <updated>2007-07-16T04:44:31Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=7</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=7</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/6-Zend-Framework" label="Zend Framework" term="Zend Framework" />
    
        <id>http://kevinvaughan.com/archives/7-guid.html</id>
        <title type="html">BaseApp - An application core layer built on Zend Framework</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                After spending some time playing with the recently released <a onclick="javascript:urchinTracker('/extlink/framework.zend.com/');" href="http://framework.zend.com/" title="Zend Framework">Zend Framework</a>, I decided to build a core layer to sit on top of the framework to make it easy to be able to quickly jump into development.  Once I started, I also saw a lot of people on various ZF related forums and in #zftalk on irc.freenode.net asking for examples of various integrations and implementations using the framework.  <br />
<br />
Unfortunately for the community, most of the examples that are readily available use older versions of the framework and are no longer functional or don't utilize some of the newer functionality properly.  <br />
<br />
So, I've put up an early copy of <a href="http://kevinvaughan.com/pages/zend-framework-baseapp.html" title="BaseApp - Zend Framework Application Core Layer">BaseApp - an application core layer built the Zend Framework</a> (<a onclick="javascript:urchinTracker('/download/projects/zend-framework/baseapp-1.0.0a.tgz');" href="http://kevinvaughan.com/projects/zend-framework/baseapp-1.0.0a.tgz" title="Download BaseApp Now!">direct download</a>).  Features in this alpha version include: a modularized component structure; main application controls, logging and configuration; graceful Smarty template integration; basic content structures controls with search engine friendly URLs; and class autoloading and easy deployment capability. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/6-Zend-Framework-v1.0.0-and-SEO-Links.html" rel="alternate" title="Zend Framework v1.0.0 and SEO Links" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-07-07T08:07:16Z</published>
        <updated>2007-07-16T04:44:44Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=6</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=6</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/6-Zend-Framework" label="Zend Framework" term="Zend Framework" />
    
        <id>http://kevinvaughan.com/archives/6-guid.html</id>
        <title type="html">Zend Framework v1.0.0 and SEO Links</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                First off, if you haven't checked out <a onclick="javascript:urchinTracker('/extlink/framework.zend.com/');" href="http://framework.zend.com/" title="Zend Framework">Zend Framework</a>, the first official release came out earlier this week.  It takes a little bit to get around and learn the structure if you haven't seen it before, and probably a little bit longer still if you aren't familiar with things like <a onclick="javascript:urchinTracker('/extlink/en.wikipedia.org/wiki/Design_patterns');" href="http://en.wikipedia.org/wiki/Design_patterns" title="Design Patterns">design patterns</a>, but this is the first really solid effort towards a framework for PHP 5.<br />
<br />
Now, you've spent some time reading through the framework site, the documentation, whatever, and you're ready to get started.  But the default link structure is not very search engine friendly and you want to dig into some different routing.  What to do?  Try out this <a href="http://kevinvaughan.com/projects/zend-framework/ContentPath.phps">content path router route</a>, based on the other routes provided within the Zend Framework.  This router will match all URL structures that end in either the Uri delimiter (/) or the content extension (default .html) <em>(( but not /.html, ))</em>.  The page and path will be set as request parameters so that your controller can determine if that particular page is supposed to exist based on whatever logic or business rules you decide. 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/5-WSDLInterpreter-Object-Oriented-wsdl2php.html" rel="alternate" title="WSDLInterpreter - Object Oriented wsdl2php" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-07-02T04:29:46Z</published>
        <updated>2007-07-02T04:29:46Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=5</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=5</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/5-Code" label="Code" term="Code" />
    
        <id>http://kevinvaughan.com/archives/5-guid.html</id>
        <title type="html">WSDLInterpreter - Object Oriented wsdl2php</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                A couple of weekends ago the shortcomings of some of the currently available wsdl2php solutions reared their head as I worked with a few different WSDLs that were handled less than gracefully.  Out of this came WSDLInterpreter (<a onclick="javascript:urchinTracker('/extlink/code.google.com/p/wsdl2php-interpreter/');" href="http://code.google.com/p/wsdl2php-interpreter/"  title="WSDLInterpreter">google code project</a>, <a onclick="javascript:urchinTracker('/extlink/wsdl2php-interpreter.googlecode.com/files/WSDLInterpreter-v1.0.0-alpha.tgz');" href="http://wsdl2php-interpreter.googlecode.com/files/WSDLInterpreter-v1.0.0-alpha.tgz" title="WSDLInterpreter v1.0.0-alpha">package download</a>), a wsdl2php class generator that takes a different approach to parsing WSDLs.  Other wsdl2php solutions try to parse the WSDL into complex array structures before generating the classes, and often run into typing and namespace issues.  They also don't handle function overloading very well, among a number of other problems.  To solve this, WSDLInterpreter instead uses the power of XSL to parse the complex WSDL structure and create valid PHP5 classes.  This is just an alpha version, but feel free to use it and let me know if you run into any problems.<br />
<br />
<a onclick="javascript:urchinTracker('/extlink/wsdl2php-interpreter.googlecode.com/files/WSDLInterpreter-v1.0.0-alpha.tgz');" href="http://wsdl2php-interpreter.googlecode.com/files/WSDLInterpreter-v1.0.0-alpha.tgz" title="WSDLInterpreter v1.0.0-alpha">Download WSDLInterpreter v1.0.0-alpha Now</a> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://kevinvaughan.com/archives/4-Confidence-in-leadership.html" rel="alternate" title="Confidence in leadership" />
        <author>
            <name>Kevin Vaughan</name>
            <email>nospam@example.com</email>
        </author>
    
        <published>2007-06-18T14:15:06Z</published>
        <updated>2007-07-23T05:00:24Z</updated>
        <wfw:comment>http://kevinvaughan.com/wfwcomment.php?cid=4</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://kevinvaughan.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=4</wfw:commentRss>
    
            <category scheme="http://kevinvaughan.com/categories/4-The-world" label="The world" term="The world" />
    
        <id>http://kevinvaughan.com/archives/4-guid.html</id>
        <title type="html">Confidence in leadership</title>
        <content type="xhtml" xml:base="http://kevinvaughan.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                With all of the ongoing chaos in the middle east:<br />
<br />
<ul><br />
<li>al-Qaida launching most potent strikes in Afghanistan since 2001</li><br />
<li>Iraqi government thus far failing to setup a structure that can maintain its own people and stability</li><br />
<li>Iran still chanting death to America and thumbing its nose to Britain as well</li><br />
<li>Hamas, Fatah, Abbas, West Bank, Gaza Strip, Civil War (there is a <a onclick="javascript:urchinTracker('/extlink/en.wikipedia.org/wiki/We_Didn');" href="http://en.wikipedia.org/wiki/We_Didn't_Start_the_Fire">Billy Joel song</a> coming in here somewhere)</li><br />
<li>the list goes on and on...</li><br />
</ul><br />
<br />
It hits a bit closer to home to see that <a onclick="javascript:urchinTracker('/extlink/www.defenselink.mil/pubs/pdfs/9010-Final-20070608.pdf');" href="http://www.defenselink.mil/pubs/pdfs/9010-Final-20070608.pdf"  title="the latest DoD report on stability and security in Iraq (June 2007)">the latest 2007 DoD report on stability and security in Iraq (June 2007)</a> shows the Iraqi people with an overall confidence rating of 58% that the Iraqi government can improve the situation there.  Compare that with our own national confidence in Bush for that same time frame, <a onclick="javascript:urchinTracker('/extlink/www.galluppoll.com/content/?ci=27154');" href="http://www.galluppoll.com/content/?ci=27154" title="38% Bush Approval Rating in April 2007">38%</a>.  This is under constant rolling blackouts and threat of death.<br />
<br />
What do you do to help bring everyone out of a massive quagmire of such large proportions that is the middle east? 
            </div>
        </content>
        
    </entry>

</feed>