Why I chose Zend Framework for Enterprise

March 25, 2009

Why I went with Zend Framework for Enterprise

At Panasonic like most large companies we have a plethora of websites ranging from little one off reporting sites to full scale applications. A major problem arrises when these sites are left up to the discretion of the developers to choose their own styles, languages and frameworks(mostly custom to themselves). Site 1 could be in perl, Site 2 in ruby, Site 3 using CakePHP, Site 4 using a user built framework, etc.. When the developer of Site 1 leaves or moves on to another project now we have a maintenance nightmare. Who takes that over? Who really wants to maintain someone else's perl project when they are primarily a PHP developer? I'd rather see that person develop deeper PHP skills.

This was where we were 7 months ago. During that time I've been developing a Zend Framework based application that will house all these sub-apps as "modules" underneath the main Zend umbrella. Management has seen the light as to having a clear, concise codebase that all developers can be trained on and move in between applications with ease, eliminating ramp up time learning different code bases.

After a few weeks of evaluations I settled on Zend for a few reasons. #1 It has a company behind it. It means a lot to me to be able to pay out some budget money to get proper training for developers or have people on the ready for support issues. #2 It's flexible, I can adapt it to the way we work as opposed to being religiously stuck in a coding paradigm. I've been able to leverage the Framework for supporting CLI scripts that have made development insanely fast. #3 stability that there are paid developers actively maintaining, testing and releasing new features. #4 small footprint in the fact I can plug and play different pieces of the framework with ease. #5 there is plenty of documentation and reference book material out there to ramp up quickly which means I don't have to document as much. Some would argue that Zend is slow, however when you have money to budget for load balancers, clusters of servers, slaved DB servers, etc, opcode caching, memcached memory caching, etc... you can tune Zend for acceptable speed.

Since then I've borrowed the SQL migrations concept from rails for more elegant DB updates for all modules. Modules can now be dropped on the server and a "Migrate.php up" script can be run to patch the DB to the proper level. A custom ACL was built on top of Zend ACL to allow fine grained page and ad-hoc permissions. Consistent UI css structures that will allow users to reuse existing UI components and not have to worry about look and feel. Module discovery code for navigation building, as well as general module initializations as well as a host of other features.

I've had my ups and downs with Zend over the years (google: jim plush zend ) but I believe they're on the right track with the framework and we're dedicating all in house development to Zend Framework. If it's a web app it's either built in our Zend Framework infrastructure or it doesn't get built. We've also just contracted with Zend training to do some onsite framework training for all our developers to make the transition as smooth as possible. Upsides to this for developers is the fact you're getting trained for free on the most popular php framework out there and no longer will you have to spend your weekends learning someone's code who just quit.

Some things that will help us keep on the straight and narrow...

1. Code reviews.
NO new modules or releases can go to the test cluster without being approved by a module maintainer. This allows us to spot issues with consistency and security issues

2. Code inspector
I wrote a module code inspector that will check modules code for non-escaped view variables, not using prepared DB statements, leaving debug code in, not registering ACL resources properly, etc.. This helps spot issues before they hit a server

3. Unit tests
Mandating at least all business logic in the models directory have unit tests that hit all public methods.

We've invested heavily in Zend Code Audits, outside Penetration tests for security holes on the web app side as well as the network infrastructure side, scalability and disaster recovery. We'll chat more about those at a later time.

So far Zend Framework and jQuery on the front end are smooth sailing in my book.




Comments

RSS feed for comments on this post.

  1. Anonymous says:
    July 14, 2009 @ 17:04 — Reply

    Question regarding: "...that will house all these sub-apps as "modules" underneath the main Zend umbrella" Could you provide some insight into how you are loading the various modules? We are considering a similar setup, looking at ZF, and having a hell of a time figuring out how to load modules based on the hostname.

  2. Microsoft CRM Experts says:
    March 17, 2010 @ 12:24 — Reply

    Comment pending moderation

  3. Microsoft CRM Experts says:
    March 17, 2010 @ 12:25 — Reply

    Comment pending moderation

  4. free games says:
    March 22, 2010 @ 12:55 — Reply

    Comment pending moderation

  5. Garrett says:
    July 15, 2009 @ 11:29 — Reply

    Could you describe/provide-an-example-of how your dynamically including the different modules (apps/sites)?

  6. Custom Replacement Windows says:
    March 16, 2010 @ 22:46 — Reply

    Comment pending moderation

  7. Chris Kirk says:
    September 9, 2009 @ 21:39 — Reply

    Finally someone from a major company who is basically re-interating what I am trying to explain to a client (that I have been doing work for). A prototype is one thing, whereas a live production application needs to be developed using industry standards (MVC etc) that includes: maintanability, scaleability, and so on. If Zend Framework were a lady, then I guess she would be attractive, intelligent, and of course, flexiable! :)

  8. Louise says:
    January 21, 2010 @ 06:16 — Reply

    Comment pending moderation

  9. Louis Vuitton Handbags Replica says:
    January 29, 2010 @ 18:13 — Reply

    Comment pending moderation

  10. Zend Developer says:
    February 28, 2010 @ 02:49 — Reply

    Comment pending moderation

  11. accountants says:
    March 18, 2010 @ 23:30 — Reply

    Comment pending moderation

  12. Casino Party says:
    March 18, 2010 @ 23:47 — Reply

    Comment pending moderation

  13. best mortgage rates says:
    March 21, 2010 @ 22:32 — Reply

    Comment pending moderation

  14. how to tie a tie says:
    March 31, 2010 @ 10:18 — Reply

    Comment pending moderation

  15. Online High School says:
    April 3, 2010 @ 00:22 — Reply

    Comment pending moderation

  16. Online GED Test says:
    April 3, 2010 @ 00:23 — Reply

    Comment pending moderation

  17. Earn high school diploma says:
    April 3, 2010 @ 00:24 — Reply

    Comment pending moderation

  18. Homeschool online says:
    April 3, 2010 @ 00:26 — Reply

    Comment pending moderation

  19. Nation High School says:
    April 3, 2010 @ 00:27 — Reply

    Comment pending moderation

  20. HD Adult VOD says:
    April 3, 2010 @ 00:40 — Reply

    Comment pending moderation

  21. maternity clothes sale says:
    April 7, 2010 @ 07:10 — Reply

    Comment pending moderation

  22. weddings says:
    April 8, 2010 @ 02:55 — Reply

    Comment pending moderation

  23. boot camp exercises says:
    April 8, 2010 @ 10:27 — Reply

    Comment pending moderation

  24. How to lose belly fat says:
    April 8, 2010 @ 12:08 — Reply

    Comment pending moderation

  25. Options University forex says:
    April 8, 2010 @ 13:34 — Reply

    Comment pending moderation

  26. ETF Trend trading says:
    April 8, 2010 @ 20:22 — Reply

    Comment pending moderation

  27. ETF Trend trading course says:
    April 9, 2010 @ 00:25 — Reply

    Comment pending moderation

  28. Game Design Degree says:
    April 10, 2010 @ 11:53 — Reply

    Comment pending moderation

  29. health and wellness says:
    April 13, 2010 @ 06:07 — Reply

    Comment pending moderation

  30. Links of London Jewellery says:
    April 14, 2010 @ 02:52 — Reply

    Comment pending moderation

  31. acne remedies says:
    April 14, 2010 @ 22:58 — Reply

    Comment pending moderation

  32. night vision cctv says:
    April 15, 2010 @ 04:31 — Reply

    Comment pending moderation

  33. Penetration Test says:
    April 17, 2010 @ 01:14 — Reply

    Comment pending moderation

  34. blu ray ripper says:
    April 18, 2010 @ 04:49 — Reply

    Comment pending moderation

  35. Tutorial says:
    April 21, 2010 @ 23:02 — Reply

    Comment pending moderation

  36. eDiet101 says:
    April 21, 2010 @ 23:05 — Reply

    Comment pending moderation

  37. Wedding Dresses Hertfordshire says:
    April 21, 2010 @ 23:06 — Reply

    Comment pending moderation

  38. lyy says:
    April 22, 2010 @ 22:21 — Reply

    Comment pending moderation

  39. xue says:
    April 22, 2010 @ 23:24 — Reply

    Comment pending moderation

  40. Pirate Costumes says:
    April 23, 2010 @ 08:05 — Reply

    Comment pending moderation

  41. expert advisor says:
    April 26, 2010 @ 00:29 — Reply

    Comment pending moderation

  42. Mhunter says:
    April 28, 2010 @ 22:48 — Reply

    Comment pending moderation

  43. BTscene torrents says:
    June 22, 2010 @ 03:42 — Reply

    Comment pending moderation

  44. make money online says:
    April 29, 2010 @ 08:35 — Reply

    Comment pending moderation

  45. Rick says:
    April 29, 2010 @ 19:52 — Reply

    Comment pending moderation

  46. Muscle building program says:
    April 30, 2010 @ 00:41 — Reply

    Comment pending moderation

  47. Premature Ejaculation Pill says:
    April 30, 2010 @ 10:29 — Reply

    Comment pending moderation

  48. playstation 3 console says:
    April 30, 2010 @ 14:39 — Reply

    Comment pending moderation

  49. eureka mighty mite vacuum says:
    April 30, 2010 @ 14:45 — Reply

    Comment pending moderation

  50. sniper paintball guns says:
    April 30, 2010 @ 14:48 — Reply

    Comment pending moderation

  51. chaga says:
    May 1, 2010 @ 09:51 — Reply

    Comment pending moderation

  52. hypnosis reviews says:
    May 4, 2010 @ 06:10 — Reply

    Comment pending moderation

  53. ipod music to computer says:
    May 4, 2010 @ 13:25 — Reply

    Comment pending moderation

  54. Credit Card Bailout says:
    May 7, 2010 @ 17:04 — Reply

    Comment pending moderation

  55. Dress up games says:
    May 9, 2010 @ 04:55 — Reply

    Comment pending moderation

  56. ev dekorasyonu says:
    May 10, 2010 @ 04:19 — Reply

    Comment pending moderation

  57. ev dekorasyonu says:
    May 10, 2010 @ 04:25 — Reply

    Comment pending moderation

  58. Cash for Caulker says:
    May 12, 2010 @ 02:14 — Reply

    Comment pending moderation

  59. Hearing Aids says:
    May 13, 2010 @ 14:04 — Reply

    Comment pending moderation

  60. réparateur electronique says:
    May 17, 2010 @ 04:09 — Reply

    Comment pending moderation

  61. Steam Shower says:
    May 17, 2010 @ 04:48 — Reply

    Comment pending moderation

  62. cilt bakimi says:
    May 18, 2010 @ 14:23 — Reply

    Comment pending moderation

  63. mobilya modelleri says:
    May 18, 2010 @ 14:27 — Reply

    Comment pending moderation

  64. may tinh xach tay says:
    May 19, 2010 @ 00:30 — Reply

    Comment pending moderation

  65. indonesia directory says:
    May 20, 2010 @ 23:51 — Reply

    Comment pending moderation

  66. watch splice online says:
    May 21, 2010 @ 04:36 — Reply

    Comment pending moderation

  67. watch the a-team online says:
    May 21, 2010 @ 04:38 — Reply

    Comment pending moderation

  68. Pariuri Sportive Online says:
    May 21, 2010 @ 11:00 — Reply

    Comment pending moderation

  69. steam rooms says:
    May 22, 2010 @ 05:13 — Reply

    Comment pending moderation

  70. steam shower says:
    May 22, 2010 @ 05:16 — Reply

    Comment pending moderation

  71. Christian Louboutin says:
    May 26, 2010 @ 13:06 — Reply

    Comment pending moderation

  72. Games says:
    June 17, 2010 @ 09:52 — Reply

    Comment pending moderation

  73. louis vuitton replica says:
    June 24, 2010 @ 02:23 — Reply

    Comment pending moderation

  74. funny motivational posters says:
    May 27, 2010 @ 04:09 — Reply

    Comment pending moderation

  75. girl games says:
    May 29, 2010 @ 23:03 — Reply

    Comment pending moderation

  76. Jeux de voiture says:
    May 30, 2010 @ 05:32 — Reply

    Comment pending moderation

  77. Adam says:
    May 30, 2010 @ 12:41 — Reply

    Comment pending moderation

  78. Haines Watts says:
    June 1, 2010 @ 02:50 — Reply

    Comment pending moderation

  79. Revitol Stretch Mark says:
    June 1, 2010 @ 04:02 — Reply

    Comment pending moderation

  80. SEO says:
    June 1, 2010 @ 15:54 — Reply

    Comment pending moderation

  81. baby prams says:
    June 1, 2010 @ 23:23 — Reply

    Comment pending moderation

  82. make a website says:
    June 2, 2010 @ 05:49 — Reply

    Comment pending moderation

  83. lice says:
    June 2, 2010 @ 20:47 — Reply

    Comment pending moderation

  84. Wicked Tickets says:
    June 2, 2010 @ 23:01 — Reply

    Comment pending moderation

  85. piese auto says:
    June 3, 2010 @ 07:49 — Reply

    Comment pending moderation

  86. Friendship sms says:
    June 3, 2010 @ 22:09 — Reply

    Comment pending moderation

  87. wangrongjiao says:
    June 3, 2010 @ 23:37 — Reply

    Comment pending moderation

  88. Bearing says:
    June 4, 2010 @ 03:04 — Reply

    Comment pending moderation

  89. online live stream says:
    June 4, 2010 @ 15:38 — Reply

    Comment pending moderation

  90. Let me google that for you says:
    June 4, 2010 @ 15:40 — Reply

    Comment pending moderation

  91. virbram five fingers says:
    June 4, 2010 @ 21:07 — Reply

    Comment pending moderation

  92. Custom Logo Design says:
    June 5, 2010 @ 16:28 — Reply

    Comment pending moderation

  93. Billig Stromlieferant says:
    June 7, 2010 @ 05:08 — Reply

    Comment pending moderation

  94. adjustable beds says:
    June 7, 2010 @ 23:38 — Reply

    Comment pending moderation

  95. Louboutins says:
    June 8, 2010 @ 00:29 — Reply

    Comment pending moderation

  96. poker bonus says:
    June 8, 2010 @ 05:10 — Reply

    Comment pending moderation

  97. accredited high school diploma says:
    June 8, 2010 @ 23:39 — Reply

    Comment pending moderation

  98. homeschool online says:
    June 8, 2010 @ 23:41 — Reply

    Comment pending moderation

  99. Primo Vacations says:
    June 9, 2010 @ 01:52 — Reply

    Comment pending moderation

  100. Comfort Pillow says:
    June 9, 2010 @ 08:18 — Reply

    Comment pending moderation

  101. LOUIS VUIttON OnlinE says:
    June 9, 2010 @ 22:36 — Reply

    Comment pending moderation

  102. Resorts 360 says:
    June 10, 2010 @ 03:13 — Reply

    Comment pending moderation

  103. Video Luna Maya says:
    June 10, 2010 @ 06:17 — Reply

    Comment pending moderation

  104. Farm Games says:
    June 10, 2010 @ 09:57 — Reply

    Comment pending moderation

  105. Boxing Routine says:
    June 10, 2010 @ 16:51 — Reply

    Comment pending moderation

  106. online law school says:
    June 11, 2010 @ 00:25 — Reply

    Comment pending moderation

  107. online law degree says:
    June 11, 2010 @ 00:26 — Reply

    Comment pending moderation

  108. victoria bc says:
    June 11, 2010 @ 03:16 — Reply

    Comment pending moderation

  109. ny limo says:
    June 11, 2010 @ 03:19 — Reply

    Comment pending moderation

  110. calgary online marketing says:
    June 11, 2010 @ 03:22 — Reply

    Comment pending moderation

  111. rent edmonton says:
    June 11, 2010 @ 03:26 — Reply

    Comment pending moderation

  112. conflict resolution workplace says:
    June 11, 2010 @ 03:42 — Reply

    Comment pending moderation

  113. gu10 led says:
    June 11, 2010 @ 20:30 — Reply

    Comment pending moderation

  114. replica watches says:
    June 22, 2010 @ 01:49 — Reply

    Comment pending moderation

  115. seo says:
    June 11, 2010 @ 21:40 — Reply

    Comment pending moderation

  116. Replica Jewelry says:
    June 23, 2010 @ 02:04 — Reply

    Comment pending moderation

  117. boot camp exercises says:
    June 12, 2010 @ 13:33 — Reply

    Comment pending moderation

  118. GHD straighteners says:
    June 20, 2010 @ 21:06 — Reply

    Comment pending moderation

  119. jewellery earrings says:
    June 21, 2010 @ 00:57 — Reply

    Comment pending moderation

  120. shoulder pain says:
    June 13, 2010 @ 10:17 — Reply

    Comment pending moderation

  121. replica watches says:
    June 21, 2010 @ 07:09 — Reply

    Comment pending moderation

  122. Search Engine Optimization says:
    June 14, 2010 @ 01:38 — Reply

    Comment pending moderation

  123. burberry bags says:
    June 22, 2010 @ 18:34 — Reply

    Comment pending moderation

  124. surpa shoes says:
    June 15, 2010 @ 00:26 — Reply

    Comment pending moderation

  125. replicas watches says:
    June 21, 2010 @ 00:42 — Reply

    Comment pending moderation

  126. replica watches says:
    June 21, 2010 @ 17:45 — Reply

    Comment pending moderation

  127. business news says:
    June 15, 2010 @ 03:23 — Reply

    Comment pending moderation

  128. Replica Jewelry says:
    June 24, 2010 @ 02:45 — Reply

    Comment pending moderation

  129. replicas watches says:
    June 26, 2010 @ 00:03 — Reply

    Comment pending moderation

  130. Louis Vuitton handbags says:
    June 16, 2010 @ 00:39 — Reply

    Comment pending moderation

  131. jewellery earrings says:
    June 22, 2010 @ 02:29 — Reply

    Comment pending moderation

  132. christian louboutin shoes says:
    June 16, 2010 @ 08:48 — Reply

    Comment pending moderation

  133. replica watches says:
    June 21, 2010 @ 02:35 — Reply

    Comment pending moderation

  134. Promotional Products says:
    June 17, 2010 @ 05:19 — Reply

    Comment pending moderation

  135. louis vuitton replica says:
    June 24, 2010 @ 01:18 — Reply

    Comment pending moderation

  136. Promotional Products says:
    June 17, 2010 @ 05:38 — Reply

    Comment pending moderation

  137. replicas watches says:
    June 23, 2010 @ 02:28 — Reply

    Comment pending moderation

  138. Replica Jewelry says:
    June 24, 2010 @ 23:59 — Reply

    Comment pending moderation

  139. Corporate Gifts says:
    June 17, 2010 @ 05:45 — Reply

    Comment pending moderation

  140. louis vuitton replica says:
    June 21, 2010 @ 00:40 — Reply

    Comment pending moderation

  141. replicas watches says:
    June 23, 2010 @ 01:30 — Reply

    Comment pending moderation

  142. seotrafficstorm.com says:
    June 18, 2010 @ 00:03 — Reply

    Comment pending moderation

  143. replica watches says:
    June 21, 2010 @ 20:56 — Reply

    Comment pending moderation

  144. louis vuitton replica says:
    June 22, 2010 @ 02:26 — Reply

    Comment pending moderation

  145. evening dresses says:
    June 18, 2010 @ 08:42 — Reply

    Comment pending moderation

  146. louis vuitton handbags says:
    June 24, 2010 @ 19:48 — Reply

    Comment pending moderation

  147. exotic car rental Miami says:
    June 20, 2010 @ 18:50 — Reply

    Comment pending moderation

  148. free music download mp3 says:
    June 20, 2010 @ 21:11 — Reply

    Comment pending moderation

  149. louis vuitton replica says:
    June 21, 2010 @ 00:46 — Reply

    Comment pending moderation

  150. replica watches says:
    June 21, 2010 @ 02:37 — Reply

    Comment pending moderation

  151. burberry bags says:
    June 22, 2010 @ 19:08 — Reply

    Comment pending moderation

  152. christian louboutin shoes says:
    June 22, 2010 @ 21:53 — Reply

    Comment pending moderation

  153. chanel handbags says:
    June 22, 2010 @ 21:55 — Reply

    Comment pending moderation

  154. robinq23 says:
    June 22, 2010 @ 22:12 — Reply

    Comment pending moderation

  155. louis vuitton replica says:
    June 23, 2010 @ 00:12 — Reply

    Comment pending moderation

  156. replicas watches says:
    June 23, 2010 @ 01:35 — Reply

    Comment pending moderation

  157. Life Insurance Litigation says:
    June 23, 2010 @ 04:41 — Reply

    Comment pending moderation

  158. Signs Austin says:
    June 23, 2010 @ 04:58 — Reply

    Comment pending moderation

  159. Auto Transport says:
    June 23, 2010 @ 05:13 — Reply

    Comment pending moderation

  160. batterie says:
    June 23, 2010 @ 23:24 — Reply

    Comment pending moderation

  161. labatterie says:
    June 23, 2010 @ 23:26 — Reply

    Comment pending moderation

  162. Rolex watches says:
    June 23, 2010 @ 23:27 — Reply

    Comment pending moderation

  163. r4 ds says:
    June 23, 2010 @ 23:28 — Reply

    Comment pending moderation

  164. louis vuitton handbags says:
    June 24, 2010 @ 19:51 — Reply

    Comment pending moderation

  165. Austin Cosmetic Dentist says:
    June 24, 2010 @ 22:23 — Reply

    Comment pending moderation

  166. Houston Cosmetic Dentist says:
    June 24, 2010 @ 22:25 — Reply

    Comment pending moderation

  167. Replica Jewelry says:
    June 25, 2010 @ 00:00 — Reply

    Comment pending moderation

  168. mp3 music says:
    June 25, 2010 @ 00:33 — Reply

    Comment pending moderation

  169. pariuri sportive says:
    June 25, 2010 @ 04:43 — Reply

    Comment pending moderation

  170. replicas watches says:
    June 26, 2010 @ 00:08 — Reply

    Comment pending moderation

  171. Andri says:
    June 26, 2010 @ 05:14 — Reply

    Comment pending moderation

  172. Insomnia says:
    June 26, 2010 @ 23:27 — Reply

    Comment pending moderation

  173. Medela Symphony says:
    June 27, 2010 @ 10:22 — Reply

    Comment pending moderation

Leave a Comment

Line and paragraph breaks automatic, HTML allowed: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <code> <em> <i> <strike> <strong>

Comments disabled due to spammers being losers that lead sad lives.