
Zend Framework 3 Released - agopaul
https://framework.zend.com/blog/2016-06-28-zend-framework-3.html
======
donatj
Huh, interesting. I thought ZF2 was still getting ironed out. I've been a
little out of touch with the community.

------
girvo
The adoption of PSR-7 and the other PSR standards has made framework
interoperation infinitely easier, and it's great to see Zend following the
community in this regard. Combining their decoupled packages with those from
the PHP League[0], for example, along with best-of-breed third-party libraries
such as Monolog will mean that developers get to take advantage of amazing
tools without worrying about writing yet another wrapper layer (I'm looking at
you, Symfony bundles and Silex service-providers...)

------
carrja99
This reminds me... Does anyone actually run zend server? At a previous gig
they standardized on zend framework 2 and were adopting zend server. I told
them I thought that was a mistake given Nginx and PHP-fpm but I didn't stick
around long enough to see how it panned out.

------
user23490
As someone who is currently stuck managing a Zend 1.9 project, if I ever see
another Zend project it'll be too soon.

~~~
stemc43
I absolutely hated ZF1. ZF2 was completely different story though.

------
gondo
i used to use ZF1. it was a good framework back in its days. than ZF2 come
along with its overcomplicated boilerplate configuration and its backwards
incompatibility. it was unusable with almost non existing community, so I took
a time to look elsewhere and switched. I am happy now with my current
framework and can't care less for ZF.

~~~
vesak
As someone who doesn't generally like PHP very much, I have to say that ZF1
was quite nice because of its simplicity. Too bad they abandoned it.

Now ZF2-3 have nothing to distinguish themselves from the other frameworks.

------
aearm
why I have to use zend? I have found it so complicated and there is no good
support recourse for it

------
raitom
Too late. Way better alternatives exist nowadays.

~~~
jonaswouters
The components are now no longer or less intertwined with others and are
therefor more easily used by other projects. Basically like the symfony
components are used everywhere.

A little competition or alternatives is always good.

------
throw2016
I have worked extensively with PHP, Python, Ruby and Node. I love PHP for
deployment of end user apps. It just works. It literally takes minutes and you
can be in your app rather than struggling with the language ecosystem.

It takes a lot of work and thinking to get to this state that is easy to
overlook but it reflects a respect for users from the developers. And it
shows. All the top apps in terms of deployment are PHP. I will ignore the many
criticisms against it, they may be valid or they may not. The bottom line is
utopianism is a deadend, there are always upsides and tradeoffs. PHP is
improving and will continue to improve and is relatively simple to learn and
use. Kudos.

Python is really a fantastic asset to the community. It's relatively simple to
use and deploy thanks to its wide support on most Linux distibutions. I hate
complexity and there are tons of interesting things in Python beyond Django.
The server story could be improved but its not a deal breaker.

I think Ruby and to some extent Node but Ruby more so shows a thorough
disrespect near hostility for the user. Deploying a Ruby app is always time
for trepidation and you can be sure it is going to take time unless you are
extremely well versed and upto date on the ecosystem ie a developer with a
Ruby focus and perhaps that's why Ruby is best used in SAAS scenarios. I have
deep doubts on the user focus of developers who expect users to deploy their
Ruby apps.

There are tons of issues that crop up, from getting the base environment up
and you do need a dev environment which has its own pitfalls and gotchas as
gems may need to be built. Then there is the decision of where the gems should
be, using things like RVM, Rbenv or the system ruby, the users who should run
it and all the shenanigans that comes with it. Then deploying the apps
themselves in terms of using things like Bundler which needs its own knowledge
base and servers which could mean compiling Passenger with or without Nginx or
using Unicorn. That is a lot of know how and it's a complete mess.

Updating apps can be equally troubling. There is no knowing which Ruby gem
dependency could fail, which library may be needed, and that particular
library may not be in your running distribution so you may need to compile it
and that could start a long time consuming chain. This is millions of user and
dev hours wasted for nothing, literally, that could be resolved by the
developers and is much worse than anything you can throw at PHP which looks
almost angelic in comparision. The deep knowlege required makes Ruby and Node
extremely unpleasant. It should not take this amount of know how to simply
deploy and use an app.

HN is dev focussed and it makes economic sense for devs to have expertise in
the most rewarding languages, but this should not detract from the weakness
and strengths of languages and I think it does.

~~~
spdionis
So how do you "relatively simply" deploy python on the server? you have to
know and work with pip, virtualenv, uwsgi, nginx, supervisor. Much more
painful than composer, nginx and php-fpm. Using apache is even easier.

Disclaimer: maybe I'm doing something terribly wrong? I don't have much
experience deploying python. If so please tell me.

~~~
nhumrich
The best way is with docker. But besides that, you usually only have to mess
with uwsgi, and nginx once. You don't need virtualenv if you only have one
python app on the server. You could however deploy a virtualenv, I have seen
some people use the virtualenv as a large distributable, and just dropped that
on the box with the code. But ultimately, if your not using docker, you could
be using PAAS, AWS Elastic Beanstalk, Heroku, Google App engine, they all do
this for you.

~~~
spdionis
I was thinking about the case of a simple digitalocean/ec2 VPS, not a PAAS. In
the end I realized that I don't need virtualenv and that makes things much
simpler, except that every single blogpost/tutorial/info for beginners
suggested using virtualenv and I was lost.

------
carrja99
Ah I remember it like it was yesterday. After years of doing work in the Java
and Scala ecosphere I took a gig at a mortgage company doing PHP. Composer,
Larval, Symphony2, Silex and a dozen other things made it seem to me like PHP
might not be too bad. I might even have some fun!

Then the day I started I learned the sad truth. The "Technical Architect" laid
down the law: all applications had to be written in Zend Framework 2 and
nothing else. I gave it a chance, read all the docs and wrote an app in it.
Suffice to say there was a scarce community and lots of defects. I also found
how it worked overly complex. Imagine taking spring and asking "how can I make
this harder and in PHP?" That's how I found the dependency injection framework
to be.

Suffice to say I only lasted 3 months before moving on. ;-)

~~~
maaaats
This sounds like one of those Whisper fake stories or a r/thathappened post,
especially with the "suffice to say" and the smiley at the end.

I used ZF2 during the beta, and the activity on SO, their IRC and their forums
were high even then, so I can't say I recognize what you say about the scarce
community.

~~~
grncdr
I also used ZF2 for a project (shortly after release) and I agree with your
assessment of the community: there was clearly a lot of interest and
contributions.

That being said, I also agree with carrja99's comments regarding the
complexity and defects. Many things felt unfinished, and documentation was
pretty poor if you wanted to step outside the boundaries of what was covered
in their example applications (which was unfortunately necessary for my
project). I ended up reading a great deal of framework code for that project.

I'm not doing PHP at the moment, but I don't think I'd even consider ZF3 at
this point given how many other strong frameworks are available.

~~~
carrja99
Ah that's what it was! I had to fix issues with components like the select
group on a regular basis.

The if channel was actually quite active I think I was recalling the
difficulty of using build tools with... Perforce.

------
rbanffy
Genuinely curious about it: what are the reasons to start a new project on
PHP?

~~~
bdcravens
Hiring pool (especially if you're aiming for low cost remote contractors)

~~~
rbanffy
How do you measure code quality and maintainability in that scenario?

~~~
bdcravens
Same way you'd measure it with in house developers.

------
baby
Are there anyone still using Zend? I know most companies in France use
Symphony.

~~~
agopaul
I've been using ZF1 and then ZF2 for the last 4 years. The learning curve is a
bit steep, but when you understand how the framework works, then it's a breeze
to work with. I just had to learn by trying and looking at the sources, since
the documentation is quite poor.

I never used Symfony, but I'm curious to hear from someone who tried both
(ZF2, Symfony 2), what they like best of Symfony. Might give it a try in the
next projects

~~~
rando444
I've never used Zend, but was tasked with creating a new web app for our
customers.

I did some research, and after reading this article comparing the PHP
frameworks [0], I ended up choosing Laravel, which I think was a great choice.
The documentation seems quite good, and there seems to be a strong community.
I found this site which has video tutorials that teach the framework
[https://laracasts.com/](https://laracasts.com/)

After sitting through a few lessons, I was off, and finished a production
ready web application in about a week, and was really proud of how it turned
out, especially since I do systems administration for a living and not
development.

[0] [http://zenofcoding.com/2015/11/16/the-great-php-mvc-
framewor...](http://zenofcoding.com/2015/11/16/the-great-php-mvc-framework-
showdown-of-2016-cakephp-3-vs-symfony-2-vs-laravel-5-vs-zend-2/)

------
BilalBudhani
This just reminded me that, I'm a Zend Certified PHP Developer . Those days
:))

~~~
rolfvandekrol
Ah, nice. So you have an actual certificate which states that you are very
good at remembering useless details from a programming language manual?

I always flat-out refused to become a Zend Certified Engineer. I'm perfectly
willing to gain a certificate for my actual programming capabilities, but not
for how well I can remember details in a manual.

~~~
cm3
Funny you say that. In some other programming community, when one of the
consultancy shops was questioning the community what they think of
certifications, they were surprised to read that I was one of a few who said
certifications are useless and especially so in programming. What it also
reminds me of is one job interview where instead of the scheduled pair
programming session I had to program my 3rd (IIRC) working program for them to
show again that I can code something from scratch. In that case I didn't
recall all the pieces of the framework/api from memory, and having to consult
a reference book made me fail the test. If a certificate of Foo API Expert
would have saved me that failure, then maybe it's worth something, but other
than that a certificate says nothing about a developer.

------
wyqydsyq
Wait, people still use PHP for new software?! And here I was thinking the
industry had modernized...

~~~
wuezz
Indeed, PHP is part of that industry. Some parts of the PHP eco-system are
even leading the way, believe it or not.

Laravel is the best example for this, with spin-offs in several other
languages. (Fair notice: many of the ideas in Laravel are not new, but
borrowed/inspired from C#, rails and others)

* Node.js frameworks inspired by Laravel: [http://www.adonisjs.com/](http://www.adonisjs.com/), [https://quorrajs.org/](https://quorrajs.org/)

* Python: [http://www.pylonsproject.org/projects/pyramid/about](http://www.pylonsproject.org/projects/pyramid/about), [https://github.com/aacanakin/glim](https://github.com/aacanakin/glim)

* Java: [http://wings.loonydev.com/](http://wings.loonydev.com/)

and so on

In other news, the `trait` type was recently popularized by PHP and can now be
found in many languages:
[https://en.wikipedia.org/wiki/Trait_(computer_programming)](https://en.wikipedia.org/wiki/Trait_\(computer_programming\))

~~~
davidwtbuxton
What does Pyramid borrow from Laravel? I thought it grew from repoze, which
was started a while before Laravel.

~~~
antod
Yeah, and repoze was a refactoring of Zope which has one of the longest web
framework histories around.

------
jmspring
Interesting. It doesn't amaze me the continued popularity of PHP. The
language, framework, and ecosystem just work. Plenty of people well versed in
it. It's not sexy, and I've done more than a few years of consultancy there.

New energy in an ecosystem is never a bad thing.

~~~
onion2k
When I started out making web software 20 years ago the choices for server-
side code were essentially C, Perl, or ASP with VBScript. Then PHP came along
and made things a great deal easier because managing a server was _hard_ , and
PHP just worked pretty much everywhere. In that sense PHP was amazing.

We aren't working in that environment any more. What software runs on a server
is no longer up to the hosting company. A developer/devop can configure a
server _far_ more easily, with no input from a sysadmin. The process can be
completely automated. That change has opened up development options
considerably. That doesn't mean writing code in PHP is a bad choice, but it
does mean there is a choice. PHP's primary advantage has been eroded to the
point where it should no longer impact the decision making process when you're
figuring out what to use. Everything else has caught up.

~~~
collyw
As a Django dev, I don't think its anywhere as easy to deploy Django as PHP.

~~~
mrweasel
I would rather work with Pythons virtualenv and pip for dependency management,
than I would PHPs Composer.

In terms of initial setup of an application than doesn't use anything but the
standard library in either language I would completely agree with you.

Edit: Composer, not Artisan as dependency manager in PHP.

~~~
jbrooksuk
As in Laravel Artisan? That's not a dependency manager.

Granted, Composer is slow, but it works so well, mainly when package
developers tag and release packages properly though. What issues do you have
with it?

~~~
trebor
If you have XDebug enabled it will slow Composer, but also several patches
near the official 1.0 release improved speed massively. If you haven't tried
it recently, you should try Composer again.

