I have tried to make it is easy for you to install and test this project, but it will not be as easy as installing Drupal. However, if you develop Drupal sites in a local development environment, it should be simple work for you.

Before you start, review the list of issues. None of these issues will get in the way of you testing Drufony's basic functionality.

I created a video that shows these steps, but you probably do not need it if you can follow these simple instructions.


I recommend at least PHP 5.4 for the built-in web server. Probably Drufony runs on PHP 5.3, but I would not be surprised if I used PHP 5.4's short array syntax somewhere.

You must have Composer installed. On my Mac, I used homebrew: brew install composer --HEAD. If you use the method described in the Composer documentation, you may end up with a file named composer.phar in which case you might need to substitute php composer.phar instead of composer in the commands below.

Download Drufony and its dependencies

To start, run this command in your shell. It will create a new directory named drufony in the current working directory. On my Mac, I ran this command in ~/Sites.

composer --stability=dev create-project drufony/drufony

Composer will download the Drufony project and its dependencies, and it may take a few minutes. When it's finished, Composer will ask for configuration parameters on behalf of Symfony, including database connection details. (These connection details are not used for Drupal's database connection yet, so you can accept the default values for every parameter.)

Install Drupal

You cannot use install.php to set up Drufony, but you can use a slightly modified version of drush to install your site. This modified version of Drush is already installed inside the Drufony project folder's bin directory and has only been tested for installing a Drupal site with a database and downloading Drupal modules and themes.

cd drufony
./bin/drush -r $PWD/web si --db-url=mysql://root@localhost/test --account-pass=drufony

I had trouble with sqlite, but MySQL works fine. Substitute your desired database name and credentials, of course. See the documentation at ./bin/drush help site-install for details about specifying your preferred options.

The Symfony integration module is enabled automatically during installation.

Run Drufony

Finally you can use Symfony's console to run the site locally if you run PHP 5.4 or greater.

./app/console server:run -v

If you are not using PHP 5.4 or greater, then… do whatever you need to do.

Use the username "admin" and password "symfony" to log in as user 1.

Installing and enabling modules

Whenever you download a contrib module (such as Views, Ctools or Panels as the example below shows) you must also update the autoloader. This is because I have removed the Drupal registry. If you fail to do this, PHP will complain that it cannot find the contrib modules' PHP classes!

./bin/drush -r $PWD/web dl ctools views panels
composer dump-autoload -d web/sites/all/
./bin/drush -r $PWD/web en ctools
./bin/drush -r $PWD/web en views
./bin/drush -r $PWD/web en panels

The error "Call to a member function log() on a non-object" will occur again when you use drush. This prevents you enabling multiple modules in one command.

After enabling modules, you must also clear the Symfony cache. Otherwise Drupal routes are not registered in Symfony. If you do not clear the Symfony cache, you will see 404 Page not found errors when you try to navigate to the new modules' pages.

./app/console cache:clear

Good luck!

Thanks for taking the time to play with Drufony. Please let me know how it goes!