View Source

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[{zone-template-instance:ZFDEV:Zend Proposal Zone Template}

{zone-data:component-name}
Zend_Service_StrikeIron
{zone-data}

{zone-data:proposer-list}
Mike Naberezny, under direction of Dave Nielsen (StrikeIron)
{zone-data}

{zone-data:revision}
1.0 - 25 May 2007: First release.
{zone-data}

{zone-data:overview}
This component will provide lightweight wrappers for the [StrikeIron|http://www.strikeiron.com] SOAP services,
in the same spirit of other ZF components like Zend_Service_Amazon.

These wrappers will abstract away the SOAP interface and provide a familiar and easy-to-use
PHP interface for the StrikeIron services that will be accessible to more PHP developers.
{zone-data}

{zone-data:references}
* [ZIP Code Information (Super Data Pack)|http://www.strikeiron.com/ProductDetail.aspx?p=267]
* [US Address Verification|http://www.strikeiron.com/ProductDetail.aspx?p=198]
* [Sales and Use Tax Basic|http://www.strikeiron.com/ProductDetail.aspx?p=163]
{zone-data}

{zone-data:requirements}
* The PHP 5 SOAP extension must be installed and enabled.

* The component must be simpler than just directly using the PHP 5 SOAPClient
and must provide clear benefit over doing so.

* The component will provide a single point of authentication for any of the
StrikeIron services it wraps, similar to existing ZF services like Zend_Gdata.
{zone-data}

{zone-data:dependencies}
* Zend_Exception
{zone-data}

{zone-data:operation}
StrikeIron provides many different, loosely coupled web services. This component
will wrap three of these services that are available on a free trail bases.

The component will include a simple base class, Zend_Service_StrikeIron, that will
serve as a single point of authentication and a provide a factory method for
instantiating preconfigured clients for the different StrikeIron services.

The component will be structured such that adding additional services in the future
will be straightforward.
{zone-data}

{zone-data:milestones}
* Iteration 1 - StrikeIron Base Class
* Iteration 2 - ZIP Code Information Service
* Iteration 3 - US Address Verification Service
* Iteration 4 - Sales and Use Tax Basic Service
* Iteration 5 - Documentation (DocBook)

Unit tests will be written as an integral and ongoing part of the
development process so no separate iteration is needed for them.
{zone-data}

{zone-data:class-list}
* Zend_Service_StrikeIron
* Zend_Service_StrikeIron_ZipCodeInfo
* Zend_Service_StrikeIron_USAddressVerification
* Zend_Service_StrikeIron_SalesUseTaxBasic
{zone-data}

{zone-data:use-cases}
||UC-01|ZIP Code Information Service (free)|
A website requires users to provide their address before viewing Premium
areas of the website. The website uses the StrikeIron Zip Code Info Service
to verify that the city/state are real before providing access to the user.
In other words, this service helps prevent users from using "123 Main
Street, AnyTown, CA USA". Only the city/state are verified. If the website
wants to verify the entire address, then it can use "StrikeIron's US Address
Verification Service" (see below).

||UC-02|US Address Verification Service (paid)|
Same scenario as above, but website wants to confirm street address as
well.

||UC-03|Sales and Use Tax Basic Service (paid)|
During checkout, some states require ecommerce merchants to charge sales
tax. The website uses "Sales and Use Tax Basic Service" to calculate the
City, County and State tax based on the user's zip code. The web service
provides a 'total sales tax' value which is used to calculate the tax
charged by the merchant to the customer.
{zone-data}

{zone-data:skeletons}
Class skeletons will not be proposed at this stage. When development begins,
behavioral requirements of the objects will be expressed as tests and the
classes will then be developed based on these requirements using TDD.
{zone-data}

{zone-template-instance}]]></ac:plain-text-body></ac:macro>