Symfony REST Edition
, (*1)
Welcome to the Symfony REST Edition - a fully-functional Symfony2
application that you can use as the skeleton for your new applications., (*2)
This document contains information on how to download, install, and start
using Symfony. For a more detailed explanation, see the Installation
chapter of the Symfony Documentation., (*3)
1) Installing the REST Edition
When it comes to installing the Symfony REST Edition, you have the
following options., (*4)
Use Composer (recommended)
As Symfony uses Composer to manage its dependencies, the recommended way
to create a new project is to use it., (*5)
If you don't have Composer yet, download it following the instructions on
http://getcomposer.org/ or just run the following command:, (*6)
curl -s http://getcomposer.org/installer | php
Then, use the create-project
command to generate a new Symfony application:, (*7)
php composer.phar create-project gimler/symfony-rest-edition --stability=dev path/to/install
Composer will install Symfony and all its dependencies under the
path/to/install
directory., (*8)
Download an Archive File
To quickly test Symfony, you can also download an archive of the Standard
Edition and unpack it somewhere under your web server root directory., (*9)
If you downloaded an archive "without vendors", you also need to install all
the necessary dependencies. Download composer (see above) and run the
following command:, (*10)
php composer.phar install
2) Checking your System Configuration
Before starting coding, make sure that your local system is properly
configured for Symfony., (*11)
Execute the check.php
script from the command line:, (*12)
php app/check.php
Access the config.php
script from a browser:, (*13)
http://localhost/path/to/symfony/app/web/config.php
If you get any warnings or recommendations, fix them before moving on., (*14)
3) Browsing the Demo Application
Congratulations! You're now ready to use Symfony., (*15)
From the config.php
page, click the "Bypass configuration and go to the
Welcome page" link to load up your first Symfony page., (*16)
You can also use a web-based configurator by clicking on the "Configure your
Symfony Application online" link of the config.php
page., (*17)
To see a real-live Symfony page in action, access the following page:, (*18)
web/app_dev.php/notes
Using the console after installing httpie.org or some other http client
you can run some commands to test the API as well:, (*19)
http "http://symfony-rest-edition.lo/app_dev.php/notes" --json -a restapi:secretpw
http POST "http://symfony-rest-edition.lo/app_dev.php/notes" --json -a restapi:secretpw < note.json
http "http://symfony-rest-edition.lo/app_dev.php/notes/0" --json -a restapi:secretpw
http "http://symfony-rest-edition.lo/app_dev.php/notes/0" "Accept:application/json;version=1.0" -a restapi:secretpw
http DELETE "http://symfony-rest-edition.lo/app_dev.php/notes/0" --json -a restapi:secretpw
http PUT "http://symfony-rest-edition.lo/app_dev.php/notes/0" --json -a restapi:secretpw < note.json
http PUT "http://symfony-rest-edition.lo/app_dev.php/notes/1" --json -a restapi:secretpw < note.json
http PUT "http://symfony-rest-edition.lo/app_dev.php/notes/2" --json -a restapi:secretpw < note.json
http PUT "http://symfony-rest-edition.lo/app_dev.php/notes/3" --json -a restapi:secretpw < note.json
http "http://symfony-rest-edition.lo/app_dev.php/notes?offset=1&limit=1" --json -a restapi:secretpw
To run the tests install PHPUnit 3.7+ and call:, (*20)
phpunit -c app/
4) Getting started with Symfony
This distribution is meant to be the starting point for your Symfony
applications, but it also contains some sample code that you can learn from
and play with., (*21)
A great way to start learning Symfony is via the Quick Tour, which will
take you through all the basic features of Symfony2., (*22)
Once you're feeling good, you can move onto reading the official
Symfony2 book., (*23)
A default bundle, AppBundle
, shows you Symfony2 in action. After
playing with it, you can remove it by following these steps:, (*24)
-
delete the src/AppBundle
directory;, (*25)
-
remove the routing entries referencing AcmeBundle in
app/config/routing_dev.yml
;, (*26)
-
remove the AcmeBundle from the registered bundles in app/AppKernel.php
;, (*27)
-
remove the web/bundles/acmedemo
directory;, (*28)
-
remove the security.providers
, security.firewalls.login
and
security.firewalls.secured_area
entries in the security.yml
file or
tweak the security configuration to fit your needs., (*29)
What's inside?
The Symfony REST Edition is configured with the following defaults:, (*30)
-
Twig is the only configured template engine;, (*31)
-
Translations are activated, (*32)
-
Doctrine ORM/DBAL is configured;, (*33)
-
Swiftmailer is configured;, (*34)
-
Annotations for everything are enabled., (*35)
It comes pre-configured with the following bundles:, (*36)
-
FrameworkBundle - The core Symfony framework bundle, (*37)
-
SensioFrameworkExtraBundle - Adds several enhancements, including
template and routing annotation capability, (*38)
-
DoctrineBundle - Adds support for the Doctrine ORM, (*39)
-
TwigBundle - Adds support for the Twig templating engine, (*40)
-
SecurityBundle - Adds security by integrating Symfony's security
component, (*41)
-
SwiftmailerBundle - Adds support for Swiftmailer, a library for
sending emails, (*42)
-
MonologBundle - Adds support for Monolog, a logging library, (*43)
-
AsseticBundle - Adds support for Assetic, an asset processing
library, (*44)
-
WebProfilerBundle (in dev/test env) - Adds profiling functionality and
the web debug toolbar, (*45)
-
SensioDistributionBundle (in dev/test env) - Adds functionality for
configuring and working with Symfony distributions, (*46)
-
SensioGeneratorBundle (in dev/test env) - Adds code generation
capabilities, (*47)
-
AcmeDemoBundle (in dev/test env) - A demo bundle with some example
code, (*48)
-
FOSRestBundle - Adds rest functionality, (*49)
-
[FOSHttpCacheBundle][21] - This bundle offers tools to improve HTTP caching with Symfony2, (*50)
-
NelmioApiDocBundle - Add API documentation features, (*51)
-
BazingaHateoasBundle - Adds HATEOAS support, (*52)
-
[HautelookTemplatedUriBundle][19] - Adds Templated URIs (RFC 6570) support, (*53)
-
[BazingaRestExtraBundle][20], (*54)
Enjoy!, (*55)