Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Mastering Symfony

You're reading from   Mastering Symfony Orchestrate the designing, development, testing, and deployment of web applications with Symfony

Arrow left icon
Product type Paperback
Published in Apr 2016
Publisher
ISBN-13 9781784390310
Length 290 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Toc

Table of Contents (14) Chapters Close

Preface 1. Installing and Configuring Symfony FREE CHAPTER 2. The Request and Response Life Cycle 3. Setting Up the Environment 4. Using Behavior-Driven Development in Symfony 5. Business Logic 6. Dashboard and Security 7. The Presentation Layer 8. Project Review 9. Services and Service Containers 10. Custom User Commands 11. More about Dev, Test and Prod Environments 12. Caching in Symfony Index

Composer and Packagist

Composer is a dependency manager application that can be used to install PHP packages.

Some developers prefers Composer, not just because it is easy to use, but it is far more efficient when it comes to keeping track of the project dependencies. In fact, the main reason for creating Composer was to provide a reliable and consistent environment to develop PHP projects.

Imagine a team of PHP developers who work on the same project using various libraries and resources. Sometimes, it can be a nightmare if updating an existing library or installing a new one crashes the code of another developer in the team. Someone should be in charge of tracking all dependencies and controlling the updates and installs to make sure that the project development runs smoothly. In the past, that person used to be the lead developer, but thanks to Composer, the dependency management during development, staging, and production phases is handled automatically by Composer.

Let's get started by downloading Composer if you don't have it already:

$ curl -sS https://getcomposer.org/installer | php

Note

I presume that you have already installed the latest stable version of PHP and required extensions and libraries including curl. In case you don't have curl, you can install Composer via the following command:

$ php -r "readfile('https://getcomposer.org/installer');" | php

Move it to your /usr/local/bin folder so that it is accessible from everywhere in your machine:

$ sudo mv composer.phar /usr/local/bin/composer

Tip

Depending on the distribution of your Linux, this path might be /usr/bin instead. Use the echo $PATH command to find out about the location.

Composer is just a manager. It does not store any libraries or packages in itself. However, it works very closely with a package repository called Packagist to make sure that it gets the right packages with the correct dependencies. To do so, Packagist talks to Composer via a configuration file called composer.json, which contains many settings including dependency information.

Symfony Standard Edition is a package saved in https://packagist.org/. Go to the website and search symfony and you will see the Symfony framework along with a list of Symfony components as the search result:

Composer and Packagist

In this book, we will deal mainly with three Composer commands:

  • $ composer create-project [package] [/path] [version]: This creates a brand new project by downloading a specific version of a package to the specified directory
  • $ composer install: This installs a package and fetches all the dependent packages to your project
  • $ composer update: This updates the current packages

Let's see how to install the Symfony Standard Edition package via Composer.

Tip

Did you know that with the self-update option, you can upgrade the Composer to the latest stable version?

$ composer self-update

Installing Symfony via Composer

Fire a terminal and go to /var/www. I chose to install Symfony there to keep it simple and avoid different usernames and folders. Create a new folder called mava and set the ownership to yourself:

$ cd /var/www
$ sudo mkdir mava
$ sudo chown -hR <YourUserName>:<YourUserName> mava

Now type the following command:

$ composer create-project symfony/symfony mava/

As you can see in the following image, version 3.0.1 is the latest stable version. We can always choose a long-term support version if we want to take a conservative approach toward a project or we can choose the development version if we are crazy enough to ask for everything cutting-edge. Normal people like me always choose the latest stable version. In other words, it is a trade-off between the latest features and longest support:

Installing Symfony via Composer

If the installation process runs smoothly, you will see a bunch of packages being downloaded and installed to the /mava directory:

Using version ^3.0 for symfony/symfony
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing psr/log (1.0.0)
    Loading from cache

  - Installing doctrine/lexer (v1.0.1)
    Loading from cache

  - Installing doctrine/annotations (v1.2.7)
    Loading from cache

  - Installing doctrine/collections (v1.3.0)
    Loading from cache

  - Installing doctrine/cache (v1.6.0)
    Loading from cache

  - Installing doctrine/inflector (v1.1.0)
    Loading from cache

  - Installing doctrine/common (v2.6.1)
    Loading from cache
etc...

After Composer has finished downloading and unpacking all the dependencies, it will ask a couple of questions including sample demo, database settings, and mailer settings. Just accept the default answer by pushing Enter:

Creating the "app/config/parameters.yml" file
Some parameters are missing. Please provide them.
database_driver (pdo_mysql):
database_host (127.0.0.1):
database_port (null):
database_name (symfony):
database_user (root):
database_password (null):
mailer_transport (smtp):
mailer_host (127.0.0.1):
mailer_user (null):
mailer_password (null):
locale (en):
secret (ThisTokenIsNotSoSecretChangeIt):
debug_toolbar (true):
debug_redirects (false):
use_assetic_controller (true):

These settings will be saved in the app/config/parameters.yml file, and we always have a chance to change them later. If everything was okay, at the end, the cache will be cleared and the default assets will be installed as follows:

Installing Symfony via Composer

The road map

If you are concerned about how long your choice of the Symfony version is going to be supported, visit the http://symfony.com/roadmap page, scroll down, enter the version number, and push the Check button. You will see a detailed description about the support duration:

The road map

Checking the installation

To make sure that Symfony installed properly, first run the PHP built-in server:

$ bin/console server:run

Then, visit the following link in your browser:

http://localhost:8000/config.php

If you see the following image, then you are good to go. You can ignore the suggested recommendations for now:

Checking the installation
You have been reading a chapter from
Mastering Symfony
Published in: Apr 2016
Publisher:
ISBN-13: 9781784390310
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image