Overview
What is Laminas Project?
Zend Framework was a PHP framework developed by Zend Technologies and acquired by Rogue Wave Software. The Laminas Project is the community managed Open Source Continuation of Zend Framework managed by the Linux Foundation. Transition initiated after Rogue Wave was…
Open source enterprise framework with the best support available
This is the literal core of PHP
Zend PHP framework, a great tool for PHP based projects
Zero in on Zend Framework!
Zend Framework 2.x Review
Zend Framework Review
Product Details
- About
- Tech Details
What is Laminas Project?
Laminas Project Technical Details
Operating Systems | Unspecified |
---|---|
Mobile Application | No |
Comparisons
Compare with
Reviews and Ratings
(15)Community Insights
- Business Problems Solved
- Pros
- Cons
- Recommendations
Zend Framework is a crucial component of eBaum's World, powering their main site and ensuring its seamless operation. Many companies have relied on Zend Framework, particularly version 1.x, for their projects, benefiting from its extensive documentation and the ease of hiring and training developers experienced with the framework. Its popularity has made it a default choice for PHP-based projects, as it is widely used by major PHP frameworks.
Although some developers may find Zend Framework more complex compared to other frameworks, alternative frameworks like Symfony and Laravel have leveraged Zend classes to provide a more accessible and extended experience. Additionally, Zend Framework has proven successful in long-running MVC applications and is highly recommended for small to medium-sized projects that prioritize efficiency. It also serves as a versatile vendor library, offering utility classes for tasks such as PDF management and cryptographic implementation. Another notable use case is the development of websites that consume APIs using Zend Framework. Lastly, organizations rely on the Zend PHP Engine as a robust framework for debugging PHP environments and monitoring various functionalities in LAMP stack setups.
Excellent interface for working with databases: Several users have praised the interface of Zend Framework 2, stating that it is excellent for managing databases. They appreciate the built-in safeguards that prevent bad data from being injected into the databases, reducing the risk of corruption or data loss.
Flexible and customizable view: Many reviewers have found Zend Framework 2 to be highly flexible when it comes to customizing the view. They mention that it is easy to modify the view according to their specific requirements, especially when dealing with ajax requests. This flexibility allows them to render content exactly as desired.
Widely used and supported by leading enterprises: Some users have highlighted that Zend Framework 2 is widely adopted by major software enterprises. They value its long-term support, which they believe surpasses that of any other framework. The reputation and widespread usage of the framework instill confidence in its reliability and stability.
Inconsistent Route Loading: Some users have reported experiencing issues with the order in which routes are loaded, leading to inconsistencies across different servers. They suggest that Zend should address this issue to ensure a consistent loading and parsing of routes.
Complex Database Functionality: Several reviewers have expressed dissatisfaction with the database functionality of Zend, particularly when it comes to specifying a specific index. They had to create their own workaround as there was no built-in function available for this purpose.
Steep Learning Curve: Many users have found Zend Framework 2 to be overly complex, especially for small projects. They feel that compared to other frameworks, there is a steep learning curve involved in understanding and working with its code.
Based on user reviews, users highly recommend using Zend Framework on a large scale, as they believe it is one of the best and secure frameworks of PHP. Another common recommendation is to pair Zend Studio with Zend Server for a solid PHP development environment. Many users suggest using Zend Framework for web design, as they find it completely object-oriented and following the MVC paradigm. These recommendations highlight the growing potential and community-driven plugins of Zend Framework, its popularity among leading software enterprises, and its powerful routing system in Zend Framework 2. However, some users note that it may require additional configuration and can be challenging to correct. Additionally, it may not be suitable for situations where speed is crucial. Nevertheless, many users appreciate the compatibility of Zend products and how they have saved them time compared to previous applications.
Attribute Ratings
Reviews
(1-4 of 4)This is the literal core of PHP
- The Zend Framework excels at productivity. It's lightweight, loosely-coupled enough to provide 90% of the functionality that everyone needs out of the door, but also customizeable enough to meet the remaining 10% should your business need it.
- Because the Zend Framework is functionality focused (also supported by the actual PHP developers) - it is light enough to hit the ground running with. Having no configuration files to get rolling is also a huge plus.
- The documentation of the Zend Framework is reliable, updated & succint. I have not encountered an issue that I could not easily troubleshoot from looking at the documentation.
- Zend PHP Engine could improve by creating a more intuitive workflow for beginners. Though it is not super hard to grasp - most developers have a learning curve for understanding & fully utilizing the framework.
- Zend PHP Engine could also improve by fixing their stability issues. Every now and then the MYSQL service calls will drop, stop being monitored or die alltogether. Any PHP developer worth his salt would point to the fact that PHP SQL queries also have this issue inherent in them - but I hope that just as much as they improved the MYSQLi queries - that they could eventually solve the issue with the stability.
- Zend PHP Engine could also improve by having the initial out of the box installation be more intuitive. The process of installing and configuring the framework can be a bit complex at times - and I have had to walk through it with even the most senior developers at my company.
- Overall, Zend PHP Engine has had a positive return on our business objective of creating a medium sized web-application, debugging the application to assess problems before they occur, and to create dynamic API calls via our backend custom software.
Many developers won't choose to use Zend because compared to other frameworks it might be complicated, so you have a learning curve issue.
If you get to see some Symfony or Laravel classes, you will see that many of those extend Zend core classes. The reason why those other frameworks encapsulate Zend classes is because those are well built but are not so easy to use and you might add some value by extending them.
I have developed custom backend APIs by entirely using Zend, which makes those faster than using other more complex frameworks. For small or medium sized projects I would strongly suggest using Zend.
- The performance is superior compared to other frameworks.
- It's supported by the contributions of the core classes of PHP.
- Extensive updated documentation.
- The code isn't that easy to understand.
- The learning curve compared to other frameworks is bigger.
- The good thing of using Zend is the fact that it's supported by the team in charge of PHP itself so they will always be aligned with the road path of php.
- Something bad is the learning curve. As a developer you will invest more time with Zend than with other frameworks.
You might find more classes in Symfony for instance, but in the end, most of the core files will be supported above Zend classes either by extension or by encapsulation.
The only con that I see is the learning curve required to adopt this framework, and the amount of additional work you will have to do to build PHP based apps with it.
Zero in on Zend Framework!
- Excellent interface for databases. I trust that no bad data will accidentally be injected causing the databases to become corrupt or drop.
- The routing is really great. We have a lot of custom routing and it makes it very easy to add or adjust routes and ensure they're getting where they need to go.
- Zend provides so much flexibility in the controllers for dealing with the view. It's so easy to customize the view to render just how you want it. Especially when dealing with a request that may or may not be ajax.
- My most recent gripe with Zend was when it turned out that the order the routes are loaded differ from server to server. I know this is a PHP issue but it would be great if Zend stepped into ensure the routes were loaded and parsed in the same order no matter where it's running.
- I wish template variables were automatically included in nested templates. It's annoying having to pass the variables once in the controller and then again within the template when loading in a new piece.
- The database functionality could use a bit of expansion. We had to write our own workaround when needing to specify a specific index. There's no built in function to handle this and we didn't want to have to resort to hand writing queries that require a specific index that the DB might not default to.
- Zend is so flexible that we haven't even felt the need to upgrade to Zend Framework 2. There's nothing we need that it can't do.
- With our installation it's so easy for me to create new modules, and have model, view, controller, route, up and running in minutes. It is so straight forward and logical it's so simple to work with once you get the hang of it.
- We use the cherry picking bootstrapping abilities to quickly get scripts up and running, especially when they deal with the database so we don't have to duplicate DB calls in straight PHP.
- The Zend View Helper set up is so great for adding key functionality off to the side that doesn't need to muck up the regular data fetching and template building. The reusability is great.
- I love the functionality built in for debugging. Just the regular Zend_Debug::dump() I use it on a daily basis! As well as the ->__toString for queries to easily copy/paste into a MySQL editor.
- We rely hard on the APPLICATION_ENV and the config/bootstrap to easily customize the data sources for production, staging, and development. It makes it so easy to set up the config once, a few checks in the bootstrap and every environment is flawless. It removes the headache of having to edit IPs everytime. I'm not sure if this is innovative but it sure does save a lot of hassle.
- We use the library namespace quite a bit. At this point we have 2 separate libraries, one that we can easily port and have it work with any new site as well as once that's specific to eBaum's World. We have amazing code architecture but Zend's flexibility makes it so easy to manage.
- We may be expanding our reach of sites we manage, and if that becomes the case I can't wait to convert those code bases to Zend and see complicated code become simple and clean.
- Product Usability
- Product Reputation
- Vendor Reputation
- Creating new modules is SO easy. It takes 2 minutes. I can have the route, bootstrap, controllers, models, template structure ready to go. And I know that it will work!
- Pagination!!!! We're a media sites with LOTS of listings pages. I love the Zend_Paginator object. We incorporated it into our List class so every list call generates this object so it's consistent in all templates. Pagination logic is tedious, and the Zend_Paginator has everything you need without the headache.
- Recently we've been focusing on SEO improvements and the flexibility Zend offers for adding meta tags to the head or anything else is so easy from within the controller. I don't feel like there's a lot of logic duplication in 18 different places.
- Zend is hard to get in to. The set up, configuration, bootstrapping, etc is incredibly daunting. My boss handled that but when I look at what he did I can't imagine how he figured it out. We have a non-conformist setup to our code base where we have a series of modules under an app folder. Within each module we have model, view, controller folders. It works well for how expansive our site is b/c having all controllers or modules in one folder would be so hard to sort through quickly. That speaks more to the way we work.
- Zend Framework can be hard to trace through when you're trying to figure out the innerworkings. I know there's some not-great hacks I've implemented in our codebase b/c I didn't have the patience to examine Zend. But usually with Zend, once you figure it out you're kicking yourself for not having realized it sooner.
- The routing is starting to become a problem. We use regex in multiple XML files, and we've recently run into issues where each server reads the routes in a different order, causing different results. In my development environment it's fine, in production it isn't b/c a certain module route isn't read at the end like my dev env, causing a 404. I've had to result to moving routes from one module to another to ensure read order, but it breaks the organization of the code base.
Zend Framework 2.x Review
- Zend Framework 2 provides a lot of best-practice tools, design patterns, and libraries for large-scale software projects.
- Zend Framework 2 uses an event-based model, a dependency injection model, and proper use of PHP5+ namespaces.
- Zend Framework 2 is used by a lot of large, leading software enterprises.
- Zend Framework 2 is overly complex for small projects.
- Zend Framework 2 documentation sometimes overlooks small details, which means you will need to delve into the code directly.
- Zend Framework 2 bug fixes on GitHub usually take quite a long time to get patched.
- Zend Framework 2 has made training easier, as we can point junior engineers to the official documentation.