Permalink
Browse files

Add the Hydra Bundle and the demo app

  • Loading branch information...
lanthaler committed Jun 6, 2013
1 parent 006fcd9 commit 6f2f8385c42e37779e18c9b3f65626ce9773b7d1
@@ -1,3 +1,4 @@
Copyright (c) 2012-2013 Markus Lanthaler
Copyright (c) 2004-2013 Fabien Potencier

Permission is hereby granted, free of charge, to any person obtaining a copy
166 README.md
@@ -1,46 +1,40 @@
Symfony Standard Edition
========================
The Hydra Issue Tracker Demo
============================

Welcome to the Symfony Standard Edition - a fully-functional Symfony2
application that you can use as the skeleton for your new applications.
Welcome to the Hydra Issue Tracker demo - a fully-functional [Symfony2][1]
application leveraging [Hydra][2] that you can use as the skeleton for your
new applications.

This document contains information on how to download, install, and start
using Symfony. For a more detailed explanation, see the [Installation][1]
chapter of the Symfony Documentation.
using Hydra with Symfony.

1) Installing the Standard Edition
----------------------------------

When it comes to installing the Symfony Standard Edition, you have the
following options.
1) Installing the Hydra Issue Tracker Demo
------------------------------------------

### Use Composer (*recommended*)

As Symfony uses [Composer][2] to manage its dependencies, the recommended way
to create a new project is to use it.
The recommended way to install the Hydra Issue Tracker demo is to use
[Composer][3].

If you don't have Composer yet, download it following the instructions on
http://getcomposer.org/ or just run the following command:

curl -s http://getcomposer.org/installer | php

Then, use the `create-project` command to generate a new Symfony application:
Then, use the `create-project` command to generate a new Hydra application:

php composer.phar create-project ml/hydra-demo-app path/to/install

php composer.phar create-project symfony/framework-standard-edition path/to/install
Composer will install Symfony, the HydraBundle, and all the dependencies
under the `path/to/install` directory.

Composer will install Symfony and all its dependencies under the
`path/to/install` directory.
Finally you need to create the database (unless it exists already) using

### Download an Archive File
php app/console doctrine:database:create

To quickly test Symfony, you can also download an [archive][3] of the Standard
Edition and unpack it somewhere under your web server root directory.
and generate the tables used by the Hydra demo app

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:
php app/console doctrine:schema:create

php composer.phar install

2) Checking your System Configuration
-------------------------------------
@@ -52,120 +46,66 @@ Execute the `check.php` script from the command line:

php app/check.php

The script returns a status code of `0` if all mandatory requirements are met,
`1` otherwise.

Access the `config.php` script from a browser:

http://localhost/path/to/symfony/app/web/config.php

If you get any warnings or recommendations, fix them before moving on.


3) Browsing the Demo Application
--------------------------------

Congratulations! You're now ready to use Symfony.
Congratulations! You're now ready to use the Hydra demo app.

From the `config.php` page, click the "Bypass configuration and go to the
Welcome page" link to load up your first Symfony page.
Welcome page" link to load up the homepage providing more information about
the demo app.

You can also use a web-based configurator by clicking on the "Configure your
Symfony Application online" link of the `config.php` page.

To see a real-live Symfony page in action, access the following page:

web/app_dev.php/demo/hello/Fabien

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.

A great way to start learning Symfony is via the [Quick Tour][4], which will
take you through all the basic features of Symfony2.

Once you're feeling good, you can move onto reading the official
[Symfony2 book][5].

A default bundle, `AcmeDemoBundle`, shows you Symfony2 in action. After
playing with it, you can remove it by following these steps:

* delete the `src/Acme` directory;

* remove the routing entry referencing AcmeDemoBundle in `app/config/routing_dev.yml`;
To see Hydra in in action, access the following page:

* remove the AcmeDemoBundle from the registered bundles in `app/AppKernel.php`;
http://localhost/path/to/symfony/app/web/app_dev.php/

* remove the `web/bundles/acmedemo` directory;
Please note that it will return JSON-LD so you might wanna access it using
cURL or the [Hydra Console][4].

* 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.

What's inside?
---------------
4) Getting Started
------------------

The Symfony Standard Edition is configured with the following defaults:

* Twig is the only configured template engine;

* Doctrine ORM/DBAL is configured;

* Swiftmailer is configured;

* Annotations for everything are enabled.

It comes pre-configured with the following bundles:

* **FrameworkBundle** - The core Symfony framework bundle

* [**SensioFrameworkExtraBundle**][6] - Adds several enhancements, including
template and routing annotation capability

* [**DoctrineBundle**][7] - Adds support for the Doctrine ORM

* [**TwigBundle**][8] - Adds support for the Twig templating engine

* [**SecurityBundle**][9] - Adds security by integrating Symfony's security
component

* [**SwiftmailerBundle**][10] - Adds support for Swiftmailer, a library for
sending emails
This distribution is meant to be the starting point for your Hydra-powered
Web APIs, but it also contains some sample code that you can learn from
and play with.

* [**MonologBundle**][11] - Adds support for Monolog, a logging library
If you are not familiar with Symfony yet, you may wanna get up to speed
with the [Quick Tour][5] that will take you through all the basic features
of Symfony2. Once you're feeling good, you can move onto reading the
official [Symfony2 book][6].

* [**AsseticBundle**][12] - Adds support for Assetic, an asset processing
library
A default bundle, `MLDemoBundle`, shows you Symfony2 and Hydra in action.
After playing with it, you can remove it by following these steps:

* **WebProfilerBundle** (in dev/test env) - Adds profiling functionality and
the web debug toolbar
* delete the `src/MLDemoBundle` directory;

* **SensioDistributionBundle** (in dev/test env) - Adds functionality for
configuring and working with Symfony distributions
* remove the routing entries referencing DemoBundle in
`app/config/routing.yml`;

* [**SensioGeneratorBundle**][13] (in dev/test env) - Adds code generation
capabilities
* remove the MLDemoBundle from the registered bundles in
`app/AppKernel.php`;

* **AcmeDemoBundle** (in dev/test env) - A demo bundle with some example
code
* remove the `web/bundles/mldemo` directory;

All libraries and bundles included in the Symfony Standard Edition are
released under the MIT or BSD license.
* remove the `security.providers` and `security.firewalls.main` entries
in the `security.yml` file or tweak the security configuration to fit
your needs.

Enjoy!

[1]: http://symfony.com/doc/2.4/book/installation.html
[2]: http://getcomposer.org/
[3]: http://symfony.com/download
[4]: http://symfony.com/doc/2.4/quick_tour/the_big_picture.html
[5]: http://symfony.com/doc/2.4/index.html
[6]: http://symfony.com/doc/2.4/bundles/SensioFrameworkExtraBundle/index.html
[7]: http://symfony.com/doc/2.4/book/doctrine.html
[8]: http://symfony.com/doc/2.4/book/templating.html
[9]: http://symfony.com/doc/2.4/book/security.html
[10]: http://symfony.com/doc/2.4/cookbook/email.html
[11]: http://symfony.com/doc/2.4/cookbook/logging/monolog.html
[12]: http://symfony.com/doc/2.4/cookbook/assetic/asset_management.html
[13]: http://symfony.com/doc/2.4/bundles/SensioGeneratorBundle/index.html
[1]: http://symfony.com/
[2]: http://www.markus-lanthaler.com/hydra/
[3]: http://getcomposer.org/
[4]: https://github.com/lanthaler/HydraConsole
[5]: http://symfony.com/doc/2.1/quick_tour/the_big_picture.html
[6]: http://symfony.com/doc/2.1/index.html
@@ -16,9 +16,11 @@ public function registerBundles()
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new ML\HydraBundle\HydraBundle()
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new ML\DemoBundle\MLDemoBundle();
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
@@ -0,0 +1,4 @@
hydra:
resource: "@HydraBundle/Controller/"
type: annotation
prefix: /
@@ -10,6 +10,11 @@ _configurator:
resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
prefix: /_configurator

# MLDemoBundle routes (to be removed)
_demo:
resource: "@MLDemoBundle/Controller/"
type: annotation
prefix: /

_main:
resource: routing.yml

@@ -1,18 +1,28 @@
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
ML\DemoBundle\Entity\User: plaintext

role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]

providers:

demo:
entity: { class: MLDemoBundle:User, property: email }

firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false

main:
pattern: ^/
anonymous: ~
http_basic:
realm: "Hydra Demo"
stateless: true

access_control:
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
- { path: ^/issues/, roles: ROLE_USER, methods: [ POST, PUT, DELETE ] }
- { path: ^/comments/, roles: ROLE_USER, methods: [ POST, PUT, DELETE ] }
@@ -1,11 +1,19 @@
{
"name": "symfony/framework-standard-edition",
"license": "MIT",
"name": "ml/hydra-demo-app",
"type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": { "": "src/" }
},
"description": "The Hydra issue tracker demo",
"keywords": [ "JSON-LD", "jsonld", "Hydra", "Web API", "Symfony", "Symfony2", "hypermedia", "REST" ],
"homepage": "http://www.markus-lanthaler.com/hydra/",
"license": "MIT",
"authors": [
{
"name": "Markus Lanthaler",
"email": "mail@markus-lanthaler.com",
"homepage": "http://www.markus-lanthaler.com",
"role": "Developer"
}
],
"minimum-stability": "dev",
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.3.*",
@@ -18,7 +26,8 @@
"sensio/distribution-bundle": "2.3.*",
"sensio/framework-extra-bundle": "2.3.*",
"sensio/generator-bundle": "2.3.*",
"incenteev/composer-parameter-handler": "~2.0"
"incenteev/composer-parameter-handler": "~2.0",
"ml/hydra-bundle": "@dev"
},
"scripts": {
"post-install-cmd": [
@@ -36,10 +45,6 @@
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
]
},
"config": {
"bin-dir": "bin"
},
"minimum-stability": "RC",
"extra": {
"symfony-app-dir": "app",
"symfony-web-dir": "web",
@@ -49,5 +54,11 @@
"branch-alias": {
"dev-master": "2.4-dev"
}
},
"config": {
"bin-dir": "bin"
},
"autoload": {
"psr-0": { "": "src/" }
}
}
Oops, something went wrong.

0 comments on commit 6f2f838

Please sign in to comment.