On Jan 30, 2008 2:01 PM, Greg Donald <[EMAIL PROTECTED]> wrote:
> On Jan 30, 2008 12:15 PM, Zoltán Németh <[EMAIL PROTECTED]> wrote:
> > > It's opinionated software and is certainly not for everyone.
> >
> > ok it's not for everyone, certainly not for me. but what is it from your
> > point of view that makes it a 'more interesting advance'?
>
> 1) Test driven development is built-in, and not just unit tests, but
> functional tests and integration tests too. In addition there's
> several plugins that extend your tests into realms you may not have
> thought of. There's Rcov which will tell you what code you haven't
> written test for. I know, you don't write tests. It's perfectly
> natural to not write tests when your framework doesn't support them
> out of the box.
>
> 2) Prototype and script.aculo.us are built-in. Not just included in
> the download but fully integrated into the models.
>
> Symphony tried to pull off the same thing with it's framework but it's
> fairly messy in my opinion.
>
> update_element_function('foo', array(
> 'content' => "New HTML",
> ));
>
> Compared to the Rails equivalent:
>
> page.replace_html 'foo', :html => 'New HTML'
>
> The other Javascript helpers like observers for example are similarly
> very small.
>
> 3) Database migrations that allow for versioned SQL. I can roll out
> new sql or roll back my broken sql with a single command.
>
> rake db:migrate VERISON=42
>
> I can rebuild my entire database from scratch:
>
> rake db:migrate VERISON=0; rake db:migrate
>
> The migrations are Ruby code that are very tight in syntax:
>
> class CreateSessions < ActiveRecord::Migration
>
> def self.up
> create_table :sessions do |t|
> t.string :session_id, :null => false
> t.datetime :updated_at, :null => false
> t.text :data
> end
> add_index :sessions, :session_id
> add_index :sessions, :updated_at
> end
>
> def self.down
> drop_table :sessions
> end
>
> end
>
> 4) Capistrano which is fully integrated with Subversion (and soon Git
> I heard) allows me to roll out a versioned copy of my application with
> a single command:
>
> cap deploy
>
> And then I can also rollback just as easily in case of an error:
>
> cap rollback
>
> 5) Ruby on Rails has a built-in plugin architecture for adding vendor
> code. I can add new functionality to my app as easy as
>
> gem install acts_as_taggable
>
> or
>
> gem install pagination
>
> It's a bit like Perl's CPAN if you're familiar.
>
> There are also plugins, engines, and components depending on the level
> of integration you want the vendor code to have.
>
> 6) Model validations extend into the view. No re-mapping of variables
> like with Smarty or some others I've tried.
>
> 7) The REST architecture is built-in to Rails. No more SOAP, unless
> you want it of course. No one's using it but it's there.
>
>
>
>
> --
> Greg Donald
> http://destiney.com/
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
Thanks for your post. Competition is a good thing.
Have you looked at the PHPUnit code coverage reports? Of course it
isn't built in like you say, which sounds pretty nice.
http://sebastian-bergmann.de/archives/578-Code-Coverage-Reports-with-PHPUnit-3.html
Making applications spit out Js just seems like a bad idea. I haven't
seen the way it works, but it seems like you'd have a lack of
flexibility. If I want to use JS I just symlink whatever copy of YUI
I want into a directory on my server and start using it.
What is the advantage of having integrated subversion/git? Using
stand-alone svn I can manage any files I want within projects using an
IDE or command line. Sometimes I don't want to commit directories or
new features yet and I can pick and choose my way.