Introducing the new Symfony Installer

In 2011, we developed a revolutionary installation method for the Symfony 2.0
version which ultimately resulted in the creation of the Composer project.
Throughout subsequent versions of Symfony, we leveraged Composer and pushed it to
its limits. Having done so, it's time to introduce a new way to install Symfony:
the Symfony Installer.

The Symfony Installer is a small PHP application that requires one-time
installation and allows you to create multiple new projects based on any Symfony
version. Check out the new Symfony download page to learn how to install it
as per your operating system.

Once installed, creating a new Symfony application becomes a simple matter of executing:

1

$ symfony new my_project_name

Wait for a few seconds and your new Symfony project will be ready. The following
image shows the blazing-fast Symfony installer in action:

By default, new projects are always based on the latest stable version of Symfony.
Don't worry, the installer is flexible enough to adapt to your particular needs:

1
2
3
4
5
6
7
8
9
10
11

# use the latest version of any branch$ symfony new my_project_name 2.3
$ symfony new my_project_name 2.6
# use a specific version$ symfony new my_project_name 2.3.26
$ symfony new my_project_name 2.5.10
$ symfony new my_project_name 2.6.4
# use the most recent LTS (long term support) version$ symfony new my_project_name lts

Execute the symfony command without any option or argument to check out all
its features.

As of today, the traditional Symfony installation based on Composer has been
deprecated. Although you can still use Composer to install Symfony, the new
Symfony Installer is the only recommended way to install Symfony, whether you
are a newcomer or an experienced developer.

Of course we'll still continue to use (and love) Composer for managing
dependencies in your Symfony projects as well as for updating Symfony versions.

Rest assured, we've been working on this installer for months, and hundreds of
developers have already tested it successfully on their systems. However, if you
do happen to find a bug, please open an issue report at the Symfony Installer repository.

@Matthias Yes, you still rely on composer after that.
What makes the installer so fast is that it downloads an archive which already contains the vendors of the standard edition, meaning you don't need to run composer during the initial project creation (it was already done on symfony's servers for you)

2) It support "smart versions". E.g. "symfony new 2.6" installs the latest version available in 2.6 branch, whichever it is

3) The resulting application is "cleaner" than with Composer. For example you won't see the "UPGRADE" files from Symfony, all the values in "composer.json" are appropriate for your project, a good "secret" option value is generated for you, etc.

Also, this installer is much better than the simple Composer installation, because it has its own Github repository, so we can propose and discuss new potential features on how to install Symfony the best way ! :D

Thanks for this great tool. Speed improvement is just amazing compared to composer installation method. Would be nice though if the legacy oh-my-zsh plugin here:
https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins
would be replaced or bundled together with this command so oh-my-zsh will also work for the symfony installer.

@Thomas B. we'll work hard to improve the installer and convince you to make the switch.

@Tu Nguyen, your need is an edge case that is not supported by the installer. The installer uses the Symfony 2 directory structure for Symfony 2 applications and the Symfony 3 directory structure for Symfony 3 application.

It seems alight, but almost premature. It looks like the only main advantage is the speed (which big deal , you're only doing it once). If you still updating and managing dependencies through composer, I just don't see the point. It honestly seems like someone was bored and had a case of NIH syndrome.

I think an awesome installer would be this as a base, but then have a web frontend manager. Where you can do updates, add dependencies, change folder structure, also be a front end for doctrine for creating basic ORM, etc... essentially a front end for all the boilerplate stuff.