Which PHP5 Framework is Your Favorite?
matt_j_99 asks: "With all the talk about Ruby on Rails, I've been thinking about PHP frameworks. Ruby on Rails looks pretty cool, but frankly, I don't want to learn a new language. It seems that with all the slashdot discussion about RoR, somebody always makes the valid point that PHP is not a framework. But with PHP5's, Object Oriented features, a standard framework might emerge. Prado, Carthag, BlueShoes, and PHITE all seem like interesting frameworks. What PHP frameworks have you used in your applications? What were the pros and cons of each? Which framework do you think will have the best chance of long-term viability and maintenance?"
Our in-house framework, as it does precisely everything we need - no more, no less.
I've been exclusively PHP for a number of years now, but the lack of innovation in frameworks and the OO limitations in PHP have lead me to Python. Python has a great up-and-coming framework called Django which was covered on slashdot recently. I've switched over to this and can see my productivity shooting right up once I've got to grips with it
"I don't want to learn a new language"
how about learning a true language like Ruby rather than continue with a subpar Perl reject like PHP?
I don't feel like it...
but frankly, I don't want to learn a new language
That's the worst thing that can happen to a professional (assuming you are one): not willing to learn new things. I strongly recommend you to learn Ruby, "it puts the fun back on programming", you won't regret.
The best way to predict the future is to invent it
I haven't used it (I only learned about it from one of the endless /. RoR articles), but Cake is another option. If nothing else, the logo is making me hungry.
Do you even lift?
These aren't the 'roids you're looking for.
Which PHP5 Framework is Your Favorite?
...
I guess I sorta like them all
It's not like Ruby's a hard language if you already know Perl/PHP. I was able to pick up the basics in a couple of hours browsing. Now, if someone came out with, say, a functional scripting language, I might hesitate. I keep meaning to study Haskell or one of its cousins, but never find the time. But Ruby? That's about as straightforward as it gets!
Listen, I've been programming PHP since version 3. I've been writing Perl since.. well since before some of you have been born. I've been working in Lisp and C since before that!
The secret to Ruby on Rails is RUBY. You just can't do that kind of stuff in PHP. PHP is pretty pathetic once you get beyond the basics. It is truly a language for the "bottom 95%" as I call it. PHP has at least the following flaws:
* poor metaprogramming: try creating an anonymous function in PHP, it's just a STRING! Yuck. Closures? Never heard of 'em. Try writing a one-liner in PHP that sorts a list of objects. Impossible.
* global variables for session, cookies, etc. Makes unit-testing a bitch!
* no "finally" clause on exceptions. WTF? Built-in functions don't raise exceptions. WTF?
* no way to refactor object fields. Yes you can use "__get/__set" but those "fake" fields don't work in every place a regular field works. WTF? In Ruby everything is a method, there are no fields, refactoring is a breeze.
* No "mixins".. I can't write a method and then stick it into multiple classes. Not even with include().
* Exposes variables vs. variable references. I thought PHP5 would get rid of "&" forever. I was wrong.
Now Ruby ain't Lisp, that's for sure. But I'd rather stick forks in my eyes than programming in PHP again.
Anyway, a good programmer has no problem learning a new language. It'll take you longer to learn the framework than the language. Ruby is simple and clean and VERY consistent from top to bottom, give it a try.
Did anyone else click the PRADO link see TForm, TButton and TTextbox and just say to themselves "Delphi programmer"?
I don't have a point. I just thought it was kinda neat.
it's not like i'm advocating ruby for any task whatsoever. i was just pointing out it was stupid to complain about learning a new language or tool. my example was ruby because the man cited RoR.
i could go with other languages like Python, OCaml, Scheme, Perl and many others, all with far better support for higher level programming, OO and modularization than that PHP crap.
I don't feel like it...
Now, if someone came out with, say, a functional scripting language, I might hesitate.
You don't know Javascript? Or maybe you don't know that it has much in common with Lisp/Scheme, with C-like syntax? Look into it - as much as people denigrate it, it's one of the coolest languages out there.
Ruby has pretty much the same features - functional programming is very possible. If you master the concepts using these mostly familiar tools, it's much simpler to jump into the functional languages (or at least it was for me.)
Slashdot - where whining about luck is the new way to make the world you want.
What a silly perspective. I've never met a carpenter who knew how to use a hammer, but refused to learn screwdrivers, miter saws, and a lathe.
No comment.
Why is it that there is very little PHP discussion here, and this story has been taken over by the RoR zelots? Seems like that's par here at Slashdot.
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
But with PHP5's, Object Oriented features, a standard framework might emerge.
Indeed, one might. So far, not looking so good on that front. All the frameworks I've encountered so far have seemed cumbersome or tedious somehow (I glanced at Prado just now; the advantages of their approach aren't readily apparent, I'd say. The demos are unimpressive, using some god-awful javascript: pseudo protocol links for updates and deletes, which really puts the internals of the framework into serious question).
It seems that PHP is bereft of any real, exciting developments on the framework front. There are a lot of frameworks, but I guess the reason why none stand out like Rails does with Ruby is simply that none are good enough, providing no significant added value.
You have to ask yourself: why a PHP framework? What such significant advantages would one of the existing frameworks provide that learning its ins and outs wouldn't be a waste of time and energy? If you're looking to automate some of the drudgework of form processing, for example, I suggest you roll a minimalist "frameworklet" - or simply "component" - yourself (if that's plausible in your situation) for that specific purpose, making it generic enough to be reusable, but not so generic that you end up fitting your projects to the tools instead of vice versa, which often happens with frameworks.
I've found minimalism to work really well with PHP. Frameworks that try to be all things to all people mostly end up being more trouble than they're worth. It may very well be faster and more efficient (and more fun) to code a small component for a specific purpose than trying to work with an existing solution. Your own solution will be tailored to fit your application and will work as your mind wants it to work, not the way the framework creator sees fit for himself.
It's a Unixy approach, I think: combine small tools in inventive ways to accomplish even the largest tasks. Of course, with tools of your own creation, you wouldn't have to deal with inconsistent APIs, a thousand syntaxes and wholly different philosophies across these tools. Write a custom session handler here, a generic input validator there... Even if you create these tools for a specific project, you will most likely find yourself reusing them in future projects, too, with possible minor customizations.
An example: when I first wanted a lightweight way of separating the business logic from the display logic for a project, I coded a single class that did the template stuff, using standard PHP with no additional burdens. Smarty etc. were readily available options, but PHP is already a templating language, and separate template engines would just have added excess bloat to the mix. My solution wasn't as feature-rich, of course, but it did exactly what it had to in the parameters set by the project specs. I've successfully and rapidly reused the code (and more importantly, the overall technique) in several later projects. Besides templating, I've had similar good experiences with an extensible input validation system I cooked up once, adjusting and refining it to later projects.
The way I see it is this: languages like Ruby and Python benefit from good web frameworks, since they're non-web-specific languages, and these frameworks make their use a lot more convenient in web programming. PHP, on the other hand, is very much a web programming language at heart. Ignore the "PHP suxx0rz!" trolls, it is a good tool for that purpose. (Even though it's capable of more, it's rarely - if ever - the best choice in those circumstances.) The best a framework would do with PHP is addressing clear shortcomings of the language in some way, but you don't really need a full-fledged framework to fight these annoyances. I find the "invented here" mini-component approach superior.
In short, I don't see a framework "enabling" significantly better ways to do web programming in PHP, unlike with Ruby or Python. For PHP, a framework will probably be more trouble than it
I've never come across a carpenter who could drive nails, cut boards, and turn table legs with a hammer.
Don't blame me; I'm never given mod points.
Isn't that like asking what type of sauce you want on your spaghetti (code)?
I have yet to see a PHP app -- especially one that also used MySQL -- that used a design pattern other than "Big Ball of Mud" most often.
Do be fair, PHP 5 looks pretty good -- or at least is a vast improvement. Unfortunately I can't say the same thing about the people who've coded in PHP up to this point. Even when PHP shows some growth, most PHP coders ignore it.
"Database abstraction? Why would anyone need that?"
"Namespaces? Why would anyone need that?"
"Design patterns? What are those?"
"Security? If it's a problem, we'll fix it later."
PHP: We'll be there for you if your development environment doesn't have enough side effects.
PHP: Because we know the money's in the maintenance contracts.
PHP: Because you obviously don't know any better.
PHP: We take security as seriously as Microsoft ten years ago.
PHP: Doing it fast is always better than doing it right.
PHP: Proving that if any idiot can write an e-commerce package, any idiot will.
PHP: Yet another great reason to make regular backups.
PHP: Fast, cheap, and robust. Two out of three ain't bad, right?
-----
I'm liking this meme. Anyone got any more?
- I don't need to go outside, my CRT tan'll do me just fine.
Use that one that makes it dead-simple for some asshole to come and hack your web site (c.f. avrfreaks.net two weeks ago). That way I will clean up in the consulting fees telling you why you shouldn't use PHP.
I read a post a few days back regarding PHP5's supposed excessive use of memory:
c id=13297391
http://books.slashdot.org/comments.pl?sid=158685&
Now, I have been contemplating the use of PHP5 for various webapps, but after reading that I am unsure about whether or not I should use it. Mind you I do not want to invest large sums of money into an accelerator, which appears to be necessary if reasonable server memory usage is a goal.
Does PHP5 indeed suffer from excessive memory consumption, and if so, can it be easily remedied? Considering I have a low-end server hosting several fairly busy personal sites, minimal memory usage is extremely important.
Cyric Zndovzny at your service.
gtk.php.net
version 2 will work with gtk 2.x, which is great!
It is not much of a thing, but will be ok!
sex is better than war!
After searching all over for several weeks, I chose eGroupWare. Their "etemplates" framework settled the issue for me.
You could theoretically cut boards and craft table legs with a hammer + chisel. Doesn't mean they would be nice or pretty, but it is theoretically possible
Yes, sure, if you worry about "metaprogramming", "refactor object fields", or "Exposes variables vs. variable references", then Ruby is the language for you, but... how about Oberon? Now that's one language I'm sure you'll love!
OTOH, if you aren't in an ivory tower and have to program for a living, then PHP is like C, a language the "perfessors" hate,but it keeps working just fine for the 99.5% of us.
Creating my own framework was one of the first things I did in PHP, it's currently on it's 4th incarnation since it went live in 2001 and powers several commercial sites. The final revision was a possibly premature conversion to PHP5 that I begun last October.
The majority of web frameworks I have looked at consist of wrapper code to instantiate classes and other pointless indirections. It's as if somewhere along the way the authors begin writing code for the sake of it, constructing these hugely complex systems that offer no real world benefit over writing a simple procedural script. For example, creating classes to produce html elements that require more work to create than just hand typing the html is a pointless waste of time.
PHP really isn't the greatest language to write anything but the simplest of frameworks in and the performance of the current (PHP5) engine is terrible (APC still doesn't support the new object model). PHP6 will essentially be PHP5.1 + unicode which is the deciding factor for me... I'm moving on from PHP and away from web frameworks, although I will continue to laugh at the anal buzzwords used by their proponents to justify them.
I'm considering rewriting our webapps in ruby. I'm also about ready to punch the next person who mentions "rubyonrails" in my vacinity.
Heh, well, no offense but, people that use to reply like you haven't tried Ruby, or don't understand it. Otherwise you would be in love with it already.
We cannot compare PHP and Ruby. It's like comparing BASIC and Perl, you get the idea. Remember when you discovered Perl and all its magic? Well, that's what happens when you get into Ruby. It's a true object oriented and dynamic language ready for real applications.
This might or not make sense to you. It depends on the use you are giving to your language of choice. If you write one-liners in Perl, you might not feel motivated to move to Ruby. If you are writing templates in PHP for your web applications and you're doing fine, you might not need Ruby either.
You see the light :) when you want to write OO applications/scripts. PHP used to have an awful hack (I haven't seen PHP 5), so does Perl 5. Python would be your choice, but for some reasons I cannot explain (yes, this is subjective) Ruby feels more natural.
Ok, I have fallen again in the "I love Ruby so much" that gets you so bored. So, here is some homework for you (some very nice presentations and small articles):
Ruby: A transparent, object-oriented programming language
10 Things Every Java Programmer Should Know About Ruby
The Ruby Programming Language (by Matz, Ruby's author)
Thirty-seven reasons I love Ruby
Blocks and closures in Ruby
The best way to predict the future is to invent it
In the beginning, you had files and web servers. Then people starting writing extensions to the web servers and the dynamic web was born.
.asp, .php, .pl, and other extensions that didn't describe the content returned, but how the content was generated. Switching or upgrading technologies often meant creating large numbers of redirections -- commonly with the king of web voodoo, mod_rewrite -- at best, breaking links on your and other sites at worst (and more likely).
But the problems with patching your web server for even the slightest dynamism were immediately obvious even in the early days of "a patchy server". So CGI (Common Gateway Interface) was born and Perl rose up as the dominant web language. Process creation overhead became an issue as the web took off so techniques for mitigating this were put in like mod_perl, servlets, etc., but overall the process stayed the same.
People started learning, slowly, that the internet wasn't a nice place. Maliciously altering query string variables to affect server processing or inject SQL code started to become commonplace. Libraries that urldecoded query strings and database libraries that used prepared statements to prevent (basically eliminate) SQL injection attacks made the rounds.
While an improvement over what came before and most definitely useful, embedding markup was an absolute pain. All sorts of hacks rose up to programmatically write markup. But then a lot of people noticed at the same time that a lot of their dynamic pages were mostly static markup with only a token amount of logic. Thus the age of ASP, PHP, JSP, ColdFusion, et al. was born, and it was cool runnings for a while. If you needed a lot of logic, you wrote code with a markup generation library. If you only needed a little logic, you wrote a markup file with code markers for logic.
Things started going south when people with no programming experience started learning from those ASP, PHP, and JSP examples. They gleefully added huge tracts of code in these files, giving new life to a much maligned design pattern known as "Big Ball of Mud". Soon everyone starting getting stuck in the ever-growing balls of mud. Simplify! Encapsulate! Componentize!
We'll just add new markup. We'll call them "tag libraries" and put all the code snippets into these markup fragments. Brilliant! Now the people who don't know how to program can just write markup and coders can write stuff further up the chain.
Further adding insult to injury, PHP completely ignored the security lessons of the preceding years and allowed arbitrary variables to be set from the browser URL and completely ignored not only database abstraction facilities in the language in which it was originally written, Perl and it's DBI, but the entire concept of a prepared database statement.
JSP and its ilk were born just before this point, tag libraries and embedded Java in all their splendor, enforcing markup well-formedness and driving popular usage.
People still wrote logic in their markup though. And even the tag libraries became more and more monstrous. A tag library for databases. A tag library for data formatting. A tag library to make more tags. A tag library to perform backend workflow. A tag library to do the laundry and wash the dishes.
Meanwhile, academic gadflies coined the acronym MVC (Model-View-Controller) and starting going on about something called SoC (Separation of Concerns). Everything started going gonzo at that point.
HTML was no longer supposed to have styling info; that is now CSS's job. Our data repositories may change -- and may or may not be relational databases anymore. Hard-coding database connection strings, table names and column names is frowned upon.
URIs were also full of
Enter the sitemap. Have the framework handle the URI space. Now your site can become technology-agnostic. As an added benefit, those framework authors also added processing pipelines where a given U
- I don't need to go outside, my CRT tan'll do me just fine.
Netcraft confirms: Ruby is dying
Except that for years PHP and MySQL, tools marketed to beginners, didn't have the "correct" option available.
...and tutorials. There is no excuse as a documentation/tutorial author to demonstrate values injected into SQL strings in examples.
And beginners won't know to ask about it. The incorrect option is all they know. The solution, of course, is better tools.
And, once again, there is NO excuse for building a network-aware technology that allows for setting variables from the URI query string. None. Even PHP's predecessors had better sense. It speaks volumes that after it was exposed as the security nightmare that it was, it was simply disabled as opposed to removing it outright. Why? Because it would break existing apps? Guess what? Apps that blindly allow end-user manipulation of variables are already broken.
The correct decision is fixing the flaw, not merely disabling the flaw by default. It should not be an option. If developer need that functionality for some corner-case reason, they should be knowledgeable enough to write the functionality themselves.
That, in a nutshell, is why I don't like PHP. It doesn't present good decision and allow people to make bad decisions, it presents bad decisions by default unless developers write the better behavior themselves -- better decisions that newbies, by definition, will not make.
- I don't need to go outside, my CRT tan'll do me just fine.
Jesus people are getting extremely annoying these days. Every time any sort of scripture language is mentioned, you're all compelled to tell us why Jesus is better. You know what? We've heard enough of your cheerleading.
Oh, uh, yeah, how about cake? It's a rails knockoff for php.
http://www.mojavi.org/ Check the forums for many open source example sites.
Okay, I admit the analogy is a bit extreme but it makes the points obvious.
The thing is I think people don't think deep enough anymore.
What is a framework?
I not sure we can all agree on the answer, I am sure that there is a formal answer.
I would say a framework, is a factory.
Someone else can say, a framework is a meta-tool, a tool that makes tools.
Another can say, a framework is a domain-specific language.
And another (the one I like the best) would ask, what is the difference between all those answers.
Does C++ or Haskell, qualify as frameworks, why and why not?
Does PostgreSql qualify as a framework? why not, couldn't we say that pgsql is a framework to create databases, it just happens to implement that standard language called Sql.
The point I want to make is, a framework is software that helps you tell the computer what you want to do, in that I don't see how can a framework be any differant than any software you've used (thinking about it I can say MS Word is a framework to create documents). So disregarding frameworks altogether is just wrong.
A framework will include the know-how of some developers, you should not start from scratch, you should not start from the beginning, you should always start from where others have ended, to learn from their work and experience, else have other have said it before me, you are deemed to reinvent the wheel, and you will be pushing your self back to the stone age (or whenever they actually reinvented the wheel)
Almost all the frameworks, no matter which language they are written in, don't provide the basics for a real world application. What about i18n? I have yet to see a framework where the template system AND the application supports translation of messages.
Customize Authentication? There are more complex apps that don't just require username+password to login (e.g. logon to database - username+password+database depending on the database you may have access or not). Also users may be in many groups, each group having different rights, even each user could have different rights - where the next isssue comes up.
Only few socalled frameworks have rights-management. There are actions that should be restricted to qualified users, like editing customer-accounts, adding new co-workers. There are things that should be displayed only to certain users. Think of current items in-stock of an online-shop. You probably want to show the shops co-workers the real in-stock amount and some info when the next delivery of that stuff is coming and the customers would see in-stock minus 10% and no info on the upcoming delivery - from the same template, only difference is the rights the user has.
These are just 3 examples of missing functionality that keep me from even considering any of those "frameworks".
What?
Try this:
http://www.phpmvc.net/
It's in beta, but I think a good MVC framework is all PHP needs to stop looking like such spaghetti. In defense of the Ruby zealots: I've haven't learned Ruby yet, but it's exactly the futuristic *REAL* object-oriented language that's going to propel us into the future. PHP is very old-school in the way code is written -- it DOES encourage spaghetti coding -- and for that I think it deserves to be phased out.
Code & Whatnot
Yes, PHP has some flaws; so do all other languages. There are many metrics by which to judge a language, and you will never find two programmers able to weight them all the same. One metric might be adoption (and thereby the amount of functionality implemented); PHP ain't doing too badly in that respect. If it serves your needs for a given project, its *good enough*.
At least you gave some actual reasons, which is why I'm responding to you and not the thousands of other /. trolls this article is sure to bring out of the shadows.
* poor metaprogramming
This is a valid argument; however, there are a lot of applications where this just doesn't come up. Especially in the realm of web/cgi programming - if you're using anonymous functions, are you *sure* you're not just complicating things unnecessarily? (I've used them, in PHP, but only after serious deliberation..) Something other than a string would certainly feel less icky, granted, but one of PHP's strong points is a fairly simple and consistent syntax.
* global variables for session, cookies, etc.
omg, no main() function! Seriously.. I don't get it. Surely you are extracting the information you need from these at initialization and passing them thereafter?
* no way to refactor object fields. Yes you can use "__get/__set" but those "fake" fields don't work in every place a regular field works. WTF? In Ruby everything is a method, there are no fields, refactoring is a breeze.
__get/__set don't work in some cases to prevent possibly infinite recursion. I don't agree with this decision personally (protecting novice programmers at the expense of clean functionality), but its perfectly explainable, and solvable: call __get/__set explicitly inside the class, or anywhere that __get/__set is already in the stack. In any case, "everything is a method, there are no fields" doesn't sound like the only (or best) way to solve that "problem".
* No "mixins".. I can't write a method and then stick it into multiple classes. Not even with include().
Wrong. There have been several ways to cope with this in the time I've been using PHP. Aggregate functions, the Classkit extension, and now Runkit. (I'd prefer multiple inheritance to any of these, but they *do* solve the problem you describe.)
* Exposes variables vs. variable references. I thought PHP5 would get rid of "&" forever. I was wrong.
Er.. are you saying that the distinction is unnecessary? I'm not sure I understand. FWIW, the new object model eliminates the *majority* of use cases for the &; you still need references to explicitly pass (or return) a primitive, however.
I'm not trying to say PHP is perfect; I have my own list of gripes that I won't bother to go into. But it is good enough for a lot of applications. And language flames are just stupid. Choose a language you're comfortable with that can do the job. If you spend half your time second-guessing yourself over syntax, then using the slightly l33ter language has not paid off.
Propel is the best I've seen. I'm not a java programmer but apparently its based on a similar java framework.
http://propel.phpdb.org/docs/user_guide/
Open Source Time and Attendance, Job Costing a
being the author, I'm naturally biased, but you should try Achievo ATK.
It's essentially a 'business framework', targeted at developing web applications. Where other frameworks mainly provide a large set of utility classes, ATK lets you write an application in as few as 10 lines of code.
We're all about inventing every wheel only once. Everything that can be generalized, will be, but anything that the framework automatically offers, can be fully customized.
In one of the replies to this story, I18N and custom security were mentioned. ATK features internationalisation of both data and interface, has several authentication and authorization methods, and lets you add new methods very easily.
the best OO php framework out there: http://ydframework.berlios.de/
- MVC
- Action requests
- Active records
- Smarty builtin
- Form handling and validation
- Ajax integration
- Pdf on-the-fly
- XML
- DB abstraction supporting MySQL, PostgreSQL, SQLite and Oracle
- Persistent store
- Integrated localization
- XML/RPC
- OO db query language
- Logging infrastructure
- Syndicated XML feeds
- Good documentation (pdf user-guide)
- Forums with quick responses
what do you want more?
I found php to be very quick to start developing with. On both windows and linux, installation of LAMP server is very straightforward and you can test your phpinfo() as soon as it is installed. I have been learning Ruby on and off for a year now and recently I decided to use it more seriously. While ruby itself and rails were pretty easy to install, I can't say the same for Apache conf. and factCGI. Even with all available instructions I was not able to get it right on my Ubuntu and I made a compromise and use Webrick for learning and testing. Without fcgi it takes 15 sec to complete a request on my windows server. Seagull http://seagull.phpkitchen.com/ is an OO framework for PHP that I've had a great success with. It is easy to install, has a site structure with top level menus built in, has user management, permissions, cms etc. Code is easy to follow/understand. Framework is very flexible to develop whatever you need to do.
Writing a reusable Framework in PHP is quite simple task for experienced developer. I see the advantage of well known frameworks when it comes to employing new developer, but still, learning well designed framework is quite simple.
My question is: Is there something similar to Hibernate for PHP?
He's not talking about the amount of text in the HTML. He's saying that logic like that in the HTML is a bad idea in both the PHP and templating cases.
Read the last five paragraphs of the parent post. He mentions alternatives.
it does not make sense to re-invent the wheel. I would say: take what you find and then make it your own. A framework is somthing like a living creature that grows over time, if you feed it right and if it was built for growth. Unfortunately that is not always the case and that might be an argument to build your own because it's not easy to find that out quickly. So I think, the really question is: how to find out if a framework will be able to grow in your hands ? kR Gerald
List of PHP Frameworks
By the way, it's interesting how a thread about PHP frameworks turned into a thread for Ruby-on-Rails zealotry. I won't knock Ruby, but if PHP is good enough for the Wikipedia, Yahoo! and Friendster, it's good enough for me. There's nothing wrong with wanting to become a guru in one language (that happens to be in the top five in popularity!) than becoming a jack of all trades.
Steve Magruder, Metro Foodist
Drupal rocks.
its open source and supports ldap or 3rd party authentication, object oriented, supports page caching, database abstraction, error handling, module functionality, smarty based templating system and good community...what else you need..
p agenum=14
ofcourse right now xoops supports only php4 so dont expect php5 stuff in it...once php5 goes mainstream they are gonna release php5 as per their roadmap http://www.xoops.org/modules/wfchannel/index.php?
Normal is Boring!! http://www.dealwithdeals.com/
not whether PHP sucks or Ruby is better or any of the rest of the messages that have NOT been modded down. Come on people. ./ sure is going downhill these days.
To the original poster: As for a framework, I'm not all that clear why you're interested in a framework other than because of what you've read about Rails being a framework for Ruby. If you're looking to use one of them because of the pre-built objects they're giving you then I would think you'd want to spend the time exploring them to make sure the one you look to using allows you the greatest flexibility for what you're doing. Otherwise, I would just work with PHP5 and build up your own collection of objects that you can re-use as you need. Isn't that the whole point of the object oriented model?
Just my two cents.
Scientia et Potentia