The drop is always movingYou know that saying about standing on the shoulders of giants? Drupal is standing on a huge pile of midgetsAll content management systems suck, Drupal just happens to suck less.Popular open source software is more secure than unpopular open source software, because insecure software becomes unpopular fast. [That doesn't happen for proprietary software.]Drupal makes sandwiches happen.There is a module for that

Drupal 8 progress from my / MongoDB perspective: update #9

Submitted by nk on Fri, 2012-11-30 06:07

Finally the kernel work is complete: right after settings.php is read, the compiled service container is read and used and there is no other service container being used (while I worked a lot on the early part the previous weeks, this week was mostly the One Container To Rule Them All patch). This means MongoBundle can override everything in the service container easily.

Drupal 8 progress from my / MongoDB perspective: update #8

Submitted by nk on Wed, 2012-11-21 06:16

Another week, another kernel patch. This one moves the kernel initialization to very, very early in the bootstrap process, just after settings.php is read. So, the MongoBundle can override everything easily. Great! There's a patch in the queue which I will turn my attention to once this is in which puts the database service in the kernel. More on this a little later.

Drupal 8 progress from my / MongoDB perspective: update #7

Submitted by nk on Mon, 2012-11-12 22:39

The new DrupalKernel patch is ready. This will unify the bootstrap and the "real" service container and compile them to disk. Very important for us. Also, I had a rift with another developer for too long but in this issue we finally managed (although it's visible we both struggled) to work together and get to an agreement. I am very hopeful this trend continues.

Drupal 8 progress from my / MongoDB perspective: update #6

Submitted by nk on Mon, 2012-11-05 06:29

So Views and Twig are both in Drupal 8 alongside with a configuration import and an entity translation UI. Big, big progress in general. On my end, EFQ v2 has been committed. Now I am doing a number of things in parallel: one, I am rewriting the batch API and have buy in from Crell, bojanz and yched (and I think berdir is OK with it too) so I expect that to get in once it's more completed. We have decided on not supporting "call me again" jobs, just clean, explicit job creation. A new queue operation seems necessarily -- which is move to the end of the queue.

So you want backwards compatibility?

Submitted by nk on Thu, 2012-11-01 02:16

The comment property on the node property is being refactored into a field. Let's pretend -- just because it's a great example not because we want to postpone it -- this happens during Drupal 9! Modules using $node->comment break but modules using $node->get('comment') don't. Modules running SQL queries against {node}.comment break but modules running entity queries with entity_query('node')->condition('comment', 1) do not.

How does the compilation of the Dependency Injection Container to disk affect hosts?

Submitted by nk on Mon, 2012-10-22 22:52

The Dependency Injection Container is now written to disk. When there is no container file available then the DIC is compiled and if the storage backend is writeable then it is written to disk. By default this is written in a tricky (slightly slower but more secure) way into the public files directory.

Drupal 8 progress from my / MongoDB perspective: update #5

Submitted by nk on Mon, 2012-10-22 12:48

The EntityFieldQuery rewrite is progressing well, finally had a good review from fago. The following patch had a 36KB interdiff on a 120KB patch. Such is life in Drupal core: you try to write something to the best of your abilities, someone smarter comes along, you adjust your code. Now your code and yourself is better if you take the effort to learn from it.

PHP closures are very simple

Submitted by nk on Sun, 2012-10-14 06:17

Closures seem like big magic but in PHP they are just syntactic sugar over the following construct:

class OurClosure {
__construct($add) {
$this->add = $add;
__invoke($x) {
$x + $this->add;
$print_add_2 = new OurClosure(2); // call __construct
$print_add_2(5); // when an object is called like a function it calls __invoke

Now, closures use the following syntax:
function get_add_printer($add) {
return function ($x) use ($add) {
print $x + $add;
print "\n";

My progress on Drupal 8: update #4

Submitted by nk on Tue, 2012-10-09 11:52

The system table removal patch went through some significant changes thanks to alexpott and sun and is now ready. That's great! I got busy with creating a proper version for the temporary key-value store patch: this is a requirement for Views in Core and also would allow for a nice entity preview workflow if someone would write it. EntityFieldQuery has been rewritten, there are a six more tests to fix, doesn't seem like a big problem, it still needs a lot of documentation and new tests but bojanz is back from vacation and promised tests.

Call for Organizers: Google-Code-In 2012

Submitted by nk on Tue, 2012-10-09 05:53

Google Code-In (GCI) is an incredible program in which junior high and high school students are encouraged to participate in an exciting open source project, like Drupal! Open source projects participating in GCI create a list of short-term, high-impact tasks for students to work on.

Over the past few years that we participated in GCI we attracted a number of new, talented young developers to the Drupal project who are still active community members today.

User login