Page 2 of 6

Re: MVC Frameworks?

Posted: Fri Oct 30, 2009 5:32 pm
by alex.barylski
Me? :)

I have used both CodeIgnitor and Zend in several projects, so I am fairly familiar with both. Zend is bloated, and it's more complicated to use (I hear this everytime I introduce the framework into a project) but obviously, flexibility doesn't come free.

Cheers,
Alex

Re: MVC Frameworks?

Posted: Sat Oct 31, 2009 2:02 pm
by markusn00b
PCSpectra wrote:What do you mean by full stack?
A full-stack framework is one that has all the necessary components for getting a website up and running quickly, that is, it does the initial hard work for you, the boilerplate code, et cetera. Zend Framework would be considered a glue framework, or an expansive library or classes, helpers, etc. You can go in and pick what needs using and where, but, unlike CI, you are left to write the boilerplate code yourself.

Mark.

Re: MVC Frameworks?

Posted: Sat Oct 31, 2009 7:14 pm
by Eran
for getting a website up and running quickly
That 'quickly' part is not a prerequisite for a full-stack definition. ZF has everything you need to get a website up and running in a structured, good-practices approach. Admittedly it's harder to get into than 'lighter' frameworks. That doesn't mean it's not a full-stack framework. The fact that some components can be used individually is just a testament to the design of the framework.

Re: MVC Frameworks?

Posted: Sun Nov 01, 2009 6:48 am
by markusn00b
pytrin wrote:
for getting a website up and running quickly
That 'quickly' part is not a prerequisite for a full-stack definition. ZF has everything you need to get a website up and running in a structured, good-practices approach. Admittedly it's harder to get into than 'lighter' frameworks. That doesn't mean it's not a full-stack framework. The fact that some components can be used individually is just a testament to the design of the framework.
Would you like to time the amount of time it takes for you to set up a website in CI vs. ZF?

ZF is very much a glue framework.

Re: MVC Frameworks?

Posted: Sun Nov 01, 2009 7:17 am
by Eran
Did you read my post? I said that Zend's is harder to get into than other frameworks, and therefor would take more time to set up. That doesn't mean it's not a full-stack framework. There's no relationship between the learning curve and how "fully stacked" a framework is.

Re: MVC Frameworks?

Posted: Sun Nov 01, 2009 3:58 pm
by alex.barylski
That 'quickly' part is not a prerequisite for a full-stack definition
I wasn't sure whether he meant 'quickly' as in performance while running or 'quickly' as a complement to the time it takes to get up and running. I think you are assuming the former? In which case I agree and disagree, what else is new? :P

I think performance is important, no question about it. If framework A runs 5 times faster than framework B, that is (in theory) 5 more web sites I can host on a rented server before having to shell out more money for a new server. Maybe an extra 50-100 bucks a month.

Time is money. :P

That being said, while Zend is slower (and Magento has done nothing to demonstrate the speed or ease of using Zend, it does demonstrate that it's capable of building large scale applications, but it's still a horrible textbook example, if that is what it's supposed to be) computer performance is always less important than developer performance, which is widely accepted -- I think you'd have to be a fool to disagree with that logic.

So if Zend fits your coding style, you don't mind getting dirty with "more" details than say CodeIgnitor, the winner is clear.

In an enterprise (or business other than my own) Zend is a clear winner. It's documented as well as most (CI is just easer to comprehend as it's default setup lets a developer start implementing actions instantly -- no bootstrap setup, etc -- which is exactly why I dislike it), it's performance is not so bad it's unusable -- otherwise no one would use it -- and it is very flexible in design -- far more than CI hands down.
Did you read my post? I said that Zend's is harder to get into than other frameworks, and therefor would take more time to set up. That doesn't mean it's not a full-stack framework. There's no relationship between the learning curve and how "fully stacked" a framework is.
With my understanding of "full-stack" I would tend to agree that Zend is very much full-stack. When I asked that question, I was actually interested in arborint's exact definition, just to see if it differed from my own, but I appreciate your feedback anyways markusn00b.

Full stack is a framework that provides all nessecary components to get any enterprise software implemented. You can build both CLI and Web based apps and would not likely have to go outside the Zend framework for anything additional -- whereas my own in house/personal framework depends on third party libraries such as Swift, DataMappers, OpenID lib, etc. It is far more minimalistic than Zend.

Although I do know what you mean by glue framework as well. Not a fan of that term, I would prefer dependency injecting (or similar), to describe what the extra steps are really doing when you use Zend.

CI is ready to go out of the box, Zend assumes you are interested in setting everything up -- which many developers are -- myself included.

Cheers,
Alex

Re: MVC Frameworks?

Posted: Sun Nov 01, 2009 5:25 pm
by Christopher
PCSpectra wrote:I was actually interested in arborint's exact definition, just to see if it differed from my own,
I actually think both Mark and pytrin are providing correct definitions. The problem with the term "full stack framework" is that it has two related meanings. One is that a framework has all the components necessary to create an application, the other is that those components are vertically integrated into a ready-to-run application. I think the latter has become more common since Rails. In PHP, frameworks like Cake and CI come ready-to-run. There is a development style already in place and you modify that. Zend does not exactly imply a development and does not come as a ready to run application in the same sense of "modify the config file and edit the templates."

Re: MVC Frameworks?

Posted: Sun Nov 01, 2009 6:09 pm
by Eran
I think you are assuming the former?
Wrong, I was talking about the latter. I didn't think my writing skills are so poor that two people could get confused.
ZF has all the components to get an application up and running, and those are integrated with each other strongly, though not in a completely straightforward and fool-proof way the way that Rails is for example (though they are moving in that direction with Zend_Application). In my opinion that is plus since you actually understand (hopefully) what's going on after you get it up and running instead of having the process magically occur for you.

Re: MVC Frameworks?

Posted: Sun Nov 01, 2009 7:39 pm
by Christopher
pytrin wrote:In my opinion that is plus ...
Which is what every programmer says about their frameworks of choice! ;)

You are, of course, correct about ZF's full-featured-ness. And that is a positive for many programmers. However, rather than talk about whether one is better than the other ... I was simply pointing out that frameworks like Cake and CI (with emphasis on being integrated out-of-the-box) are different than frameworks like ZF (with emphasis on reusable components and extensibility). Better or worse is a matter of opinion given that all have quality code.

There are consequences to these framework's decisions. Those consequences are germane to someone deciding which framework to use. For example, some of the components in Cake/CI/Symfony cannot be easily be used standalone. And there is some (well known) up-front work to get a ZF application organized to your liking.

Re: MVC Frameworks?

Posted: Sun Nov 01, 2009 7:58 pm
by Eran
I was merely debating whether ZF is fully-stacked or not, not pushing my "framework of choice".
Regardless, I'd have to disagree about code-igniter - the source code is not up to par with the other frameworks mentioned here. It uses PHP4 style often (no visibility for class members or methods), the inline documentation is lacking in format but is often too verbose where it shouldn't be (major smell). It's the framework I would recommend the least, given the choice.

Re: MVC Frameworks?

Posted: Sun Nov 01, 2009 8:28 pm
by Christopher
And based on this and other threads, I think CodeIgniter fans have parallel negative opinions about ZF. That's why I was trying to separate opinion from actual differences that programmers will encounter using these frameworks. Their biases will determine their preferences.

Re: MVC Frameworks?

Posted: Sun Nov 01, 2009 9:01 pm
by blueyon
The way Zend code things is not the right way to write code.

People who are just learning frameworks seem to get into it because of all the hype surround ZF being a contributor to PHP. The truth is people at zend are not not good programmers. They messed up a lot of features in php that took many versions before they fixed them. Their software such as the zend studio is rubish and pretty unsable.

Writing code "light weight, flexable, reusable and simple" saves time. All coding should be like this.

ZF is not light weight. it takes 40 classes for the contorller and another 40 for the view. this is completely unjustifiable.

Re: MVC Frameworks?

Posted: Sun Nov 01, 2009 9:35 pm
by alex.barylski
pytrin wrote:In my opinion that is plus since you actually understand (hopefully) what's going on after you get it up and running instead of having the process magically occur for you.
This is true, but then again, one of the reasons behind using a framework is to make things easier by virtue of not having to concern yourself with design aspects, focusing strictly on getting things done.
'd have to disagree about code-igniter - the source code is not up to par with the other frameworks mentioned here. It uses PHP4 style often (no visibility for class members or methods), the inline documentation is lacking in format but is often too verbose where it shouldn't be (major smell). It's the framework I would recommend the least, given the choice.
It does have a lot of design smells, yes. At one time (not sure if they even implemented anything) but action forwarding was not even understood by the support engineers. I was told what I wanted was a redirect, which indicated to me they really didn't "design" codeignitor.
And based on this and other threads, I think CodeIgniter fans have parallel negative opinions about ZF
Big time. :P
ZF is not light weight. it takes 40 classes for the contorller and another 40 for the view. this is completely unjustifiable.
I have to download the ZF code and review it again, I'm not sure why 40 files are required by a controller. That does seem a little much, unless each file extends the base controller in some way, perhaps adding forwarding, form controllers, filters, etc.

Cheers,
Alex

Re: MVC Frameworks?

Posted: Sun Nov 01, 2009 9:44 pm
by josh
arborint wrote:
PCSpectra wrote:I was actually interested in arborint's exact definition, just to see if it differed from my own,
I actually think both Mark and pytrin are providing correct definitions. The problem with the term "full stack framework" is that it has two related meanings. One is that is has all the components necessary to create an application, the other is that those components are vertically integrated into a ready-to-run application. I think the latter has become more common since Rails. In PHP, frameworks like Cake and CI come ready-to-run. There is a development style already in place and you modify that. Zend does not exactly imply a development and does not come as a ready to run application in the same sense of "modify the config file and edit the templates."
It's worth mentioning several people have released "base apps" built ontop of Zend Framework that you supposedly can just start adding code onto. Some people will like that kind of convenience, some people feel it gets in the way. What's important is the option to get rid of the boilerplate code if desired.

Re: MVC Frameworks?

Posted: Sun Nov 01, 2009 10:36 pm
by Christopher
josh wrote:It's worth mentioning several people have released "base apps" built ontop of Zend Framework that you supposedly can just start adding code onto.
I agree. But that is not the same as code released and supported by the project itself. And many of these ZF sub-projects go unsupported after the initial few releases. Most people using ZF build their own base app specifically suited for their needs. That is actually one of ZF's key attractions.

"Some people will like that kind of convenience, some people feel it gets in the way. What's important to some people is the option to get rid of the boilerplate code if desired." Emphasis and addition mine. ;)