Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Drupal 7 Released (drupal.org)
124 points by kylemathews on Jan 5, 2011 | hide | past | favorite | 33 comments


There is a lot of cool stuff in here: * A complete rewritten database layer with dynamic query building capabilities. This allows for queries to built in a way that are DB agnostic. Also makes it very easy for other to modify them.

* A generic entity system. In practice this allows data fields to be attached to objects dynamically. A cool thing about this system is that field storage is completely configurable on a per field basis so you could have your data stored in a bunch of different system (Mongo, Cassandra, S3, etc.)

* There is a really nice URL routing system. Drupal 6 had some really irritating problems, but there is a lot of cool stuff in here now.

* jQuery UI has been integrated so it's available for use on every Drupal 7 installation.

There are a lot of other things too. If you're looking to develop an application in PHP Drupal definitely isn't a bad choice.

(Disclosure: I work for a Drupal shop and am a core contributor)


The new database layer is... nice-ish, but what ever happened to Dries Buytaert's prediction/dream of finally having an object-relational mapper in Drupal (http://buytaert.net/drupal-predictions-for-2008)? Last I heard was that a Doctrine integration got rejected chiefly because "it would slow Drupal down".


ORMs are nice for simple things, but once you get to a system with a decent amount of complexity they really start to fall down. Case in point, doctrine has a custom query language to deal with a lot of the complexities. This is actually the reason behind the slowness you pointed out.

Thankfully, there is the entity system which for all practical purposes is an ORM on steroids. It abstracts storage away from the developer, has attachable fields with per field storage configuration. Plus every entity has a completely customizable controller class. There are now modules that give you an entire controller architecture (http://drupal.org/project/entity). I think it's a pretty cool idea and blasts ORMs out of the water.


I'll take anything over the pre-7 approach of either extending nodes, trying to wrap your head around programmatically using CCK or doing plain SQL... but an ORM on steroids? The code samples on http://www.istos.it/blog/drupal-entities/drupal-entities-par... aren't exactly what you'd call elegant, bundles are a poor man's inheritance, you need a contrib module (Relation) to do something as basic as relations, and EntityFieldQuery doesn't even come close to the expressiveness of e.g. SQLAlchemy. It's an enormous step forward, but don't get cocky :-)


Doctrine is brutal. Massively bloated, extremely slow, and feels (in general) like a cluster-f*.

I like ORMs, and you can make them fast and effective. But in PHP, lightweight is king. I personally wouldn't go with anything beyond what's found in CodeIgniter.



I gave Drupal 7 a fair shot for a site I had to build quickly for my dad during the xmas holidays. I've a background in PHP and it was fairly easy to get shit up and running easily but then I gave up when I had to install tons of plugins to get image upload working. Supposedly they've integrated the file/image classes into the core for 7 but I didn't manage to get the stuff working fast enough, so I tried wordpress instead and although less powerful it at least could publish pages (wysiwyg) and handle image uploads without tons of configuration and plugins (and plugin dependencies).

I suppose that like for all open source projects documentation is lagging but it'd be a lot easier to adopt Drupal if the image stuff had just worked out of the box.


(Shameless plug time: I work at Acquia, surrounded by the developers of Drupal Gardens.)

If you want a Drupal 7 site with working image uploads (and galleries) out of the box, Drupal Gardens can probably help you:

Go to drupalgardens.com and sign up.

Create a site and make sure you have "image galleries" checked on the template page.

And now you have a Drupal 7 site with image uploads working. Here, I took a few minutes and built you an example:

http://mechfishflickr.drupalgardens.com

Now for the kicker: If at any point you don't want to keep your site running on drupalgardens.com -- perhaps because you feel the need to hack directly on the code, or because you really, truly need one of the 6,794 other Drupal modules that aren't yet supported on Gardens -- there is an "Export" option on the "My sites" page which you can use at any time to download the code, files, and database in a big tarball. Then you can install it on your local LAMP stack or upload it somewhere else.


I'll second this. Drupal Gardens is well worth checking out, especially if you are new to Drupal. You can get a site up and running _very_ quickly, the built in theme editor is amazing (think Firebug with a save button), and you really can get a tarball of the whole site with a couple of clicks.

I build Drupal based websites, but I'm not affiliated with Acquia.


ah wish I had known about that!


> I gave Drupal 7 a fair shot for a site I had to build quickly for my dad during the xmas holidays.

Is it really a "fair shot" if it hasn't been released yet?


well it was the second? alpha/rc, and I also tried the latest 6.x version.


This major release is a long time coming (~3 years).

While the list of new features is long (see CHANGELOG.txt) in my opinion the biggest improvement is the commercially sponsored user experience additions.

Out of the box it still feels a little rough to me but there are some interesting Drupal distributions in the Drupal 6 space (Open Atrium, Open Publish and more) that I expect to really shine as they and others move to Drupal 7.

(disclosure: I build Drupal sites)


> This major release is a long time coming (~3 years).

For some of us this is a blessing. Upgrading can be daunting if you've customised heavily or used modules that don't work in a newer version. Anything less than 3 years for an upgrade that is incompatible with older modules/themes is too short in my view. Looks like we'll have to start thinking about upgrading to version 6 now.


The biggest improvement is that it salts passwords now.


I was doing hardcore Drupal 4/5/6 for about 4 years, but have been out of the loop for a while. Perhaps somebody can answer these for me:

1) Have any significant improvements been made to simplify and streamline the Drupal Forms API?

2) Is there now any easy and reliable way to define models/CCK-types in code rather than web interface?

3) Is there now a programmatic schema and data migrations solution that does not have to be used from a web interface?

4) Do modules still have to be named *.module ?

5) Has any namespacing been put into place?

6) Have any new measures been put into place to discourage developers from putting SQL queries in template code?

7) Do modules and "node" objects have better OOP integration?

Thanks


I love Drupal but it's not a great testament to the technology when the announcement site is broken:

http://screencast.com/t/RE6gn0gIZL


It's working now.


How is the codebase? OOP? MVC? Do they still use those weird file extensions (it was ".include" or ".module" maybe, don't remember now)?


They've been slowly moving to a more object-oriented approach, but in general the consensus seems to be that procedural code and a very, ahem, loose separation between logic and views is just fine. See http://drupal.org/node/547518 which makes some good points (Drupal uses a lot of patterns commonly found in object- and aspect-oriented code, even if it's neither) but also reads like a long apology for crummy software architecture.

It's a mixed blessing, I think. OOP can be scary to people new to programming, and the PHP ecosystem has a lot of new programmers. On the other hand, I'm very, very glad I don't have to maintain the Drupal codebase.


The 'us too' quality of that blog post is disturbing. They don't need to defend their architecture choices against people who naively assume that OO is an appropriate paradigm for all domains. The list of how 'design patterns' are really in there somewhere is particularly off-putting. I didn't like developing for Drupal, but I certainly support their right to do the things in the way they think is best for the problems they are trying to solve.


Drupal is 10 years old so started back in the dark ages of PHP 3. So it started almost completely procedural but large chunks now have been converted to OOP.

Drupal doesn't follow the MVC pattern but the somewhat less common PAC (Presentation-Abstraction-Control) pattern. See http://www.garfieldtech.com/blog/mvc-vs-pac for a good overview of the differences between MVC and PAC and how Drupal implements it.


Also, the codebase is considerably more stable than at any point in the past due to a large push to add automated testing to Drupal core. There are now upwards of 25,000+ tests that run automatically on every contributed patch.


Im eager to try this out, I hope they fixed the cache system as before the only way to get a fast website was installing and configuring properly the boost module (drupal had a lot of database load, and shared hostings cut mysql connections at a limit that drupal exceded easily).

Ill give it a try!


Among other things Drupal 7 has better support for reverse proxies like Varnish. From the changelog:

"Improved support for HTTP proxies (including reverse proxies), allowing anonymous page views to be served entirely from the proxy."



Ah! Just yesterday I moved a site running on PostNuke+PNPHPBB2 to Drupal 6 like this:: PostNuke -> Drupal via manual SQL instructions on Drupal website | PNPHPBB2 -> vBulletin3 via Impex | vBulletin3 -> Drupal via vB2Drupal module

Now gotta get moving upgrading Drupal 6 to Drupal 7 :)


Drupal 6 will still be supported until Drupal 8 is released in a few years and it will for a while still be more stable than Drupal 7 and have more modules supporting it.

So no need to rush an upgrade - you can safely stay at Drupal 6 for at least a year or so.


My first impression from Drupal 7 is that it's much easier to use and get started with. Great work from the community! Now it's time to move in to the larger corporations where expensive licenseware still rules.


Congratulations to everyone who helped create Drupal 7. I took a quick look at it, and the Admin UI looked much improved.


thinking about using drupal 7 on a new site we're making for a client. besides the whitehouse site, does anyone know some good government sites using drupal? any using drupal 7 already?


Many more than you would think: http://groups.drupal.org/government-sites


Congratulations!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: