Giter Site home page Giter Site logo

gimler / symfony-rest-edition Goto Github PK

View Code? Open in Web Editor NEW
635.0 46.0 129.0 952 KB

Fork from symfony-standard edition with additional rest features.

License: MIT License

PHP 88.63% CSS 2.72% ApacheConf 2.97% HTML 5.68%
php symfony symfony-application composer

symfony-rest-edition's Introduction

Symfony REST Edition

Build Status Total Downloads

Welcome to the Symfony REST Edition - a fully-functional Symfony2 application 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 chapter of the Symfony Documentation.

  1. Installing the REST Edition

When it comes to installing the Symfony REST Edition, you have the following options.

Use Composer (recommended)

As Symfony uses Composer to manage its dependencies, the recommended way to create a new project is to use it.

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:

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.

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.

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 composer.phar install
  1. Checking your System Configuration

Before starting coding, make sure that your local system is properly configured for Symfony.

Execute the check.php script from the command line:

php app/check.php

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.

  1. Browsing the Demo Application

Congratulations! You're now ready to use Symfony.

From the config.php page, click the "Bypass configuration and go to the Welcome page" link to load up your first Symfony page.

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/notes

Using the console after installing httpie.org or some other http client you can run some commands to test the API as well:

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:

phpunit -c app/
  1. 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, 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.

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

  • delete the src/AppBundle directory;

  • remove the routing entries referencing AcmeBundle in app/config/routing_dev.yml;

  • remove the AcmeBundle from the registered bundles in app/AppKernel.php;

  • remove the web/bundles/acmedemo directory;

  • 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?

The Symfony REST Edition is configured with the following defaults:

  • Twig is the only configured template engine;

  • Translations are activated

  • Doctrine ORM/DBAL is configured;

  • Swiftmailer is configured;

  • Annotations for everything are enabled.

It comes pre-configured with the following bundles:

Enjoy!

symfony-rest-edition's People

Contributors

ajessu avatar amadi avatar arjona avatar asa1-et-jenkins avatar brikou avatar cordoval avatar fabpot avatar gajdaw avatar gimler avatar havvg avatar hollodk avatar igorw avatar jalliot avatar jmfontaine avatar kriswallsmith avatar lenar avatar lsmith77 avatar meonkeys avatar mridgway avatar phreaknerd avatar schmittjoh avatar seldaek avatar snc avatar stealth35 avatar stof avatar tobion avatar trompette avatar vicb avatar weaverryan avatar willdurand avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

symfony-rest-edition's Issues

where symfony routes are defined in this project?

I did not found where the routes are defined in the project...

How this is done? Where are the names of the routes are defined? (I found none) (if feel it is done throught the configuration of the fos_rest)

What if someone would like to define the routes based on annotation? Is it recommended to avoid that for RESTful API???

If you have any link or any documentation related to definition of the routes in RESTful API without annotations or yml file, I will be happy.

Thanks,

add Angular.js example?

Show up to combine Symfony2 with Angular.js. Show also how to setup security etc.

Potentially this should be a branch and not be merged into the main branch (aka 2.3)

Where is routing defined?

Were is the routing configured for each command?

I can't find a routing.yml file or anything else. The routing seems to be done magically and I'm not even sure where to search.

willdurand/hateoas-bundle require missing

Error log:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
- Installation request for jms/serializer-bundle 0.13.@dev -> satisfiable b
y jms/serializer-bundle[0.13.0].
- willdurand/hateoas-bundle 1.0.0 requires jms/serializer-bundle ~1.0 -> sat
isfiable by jms/serializer-bundle[1.1.x-dev].
- Can only install one of: jms/serializer-bundle[1.1.x-dev, 0.13.0].
- Installation request for willdurand/hateoas-bundle 1.0.
@dev -> satisfiabl
e by willdurand/hateoas-bundle[1.0.0].

Solution:
add this line "jms/serializer-bundle": "~1.0" on composer.json

Symfony 2.8?

Hi,

I'm planning on using this Symfony edition but wondered if I could use it with version 2.8?
Would changing the dependency cause compatibility issues?

Many thanks.

Invalid note submits to /notes not /notes new

If a note is submitted without a message it's invalid the user is redirected from the original form /note/new back to /note.

I understand that the postNoteAction is being served and processing the request so this is expected behaviour.

Is the only way around this abstracting the core of the postNoteMethod into a new method _handlePostAction() and calling it from both newNoteAction and postNoteAction? Given the example uses annotations I can't see any other way of implementing this.

Thoughts @gimler @lsmith77

Create a symfony2 distribution for REST

Would it be an idea to create a public available distribution of this, that is specialized for applications having a REST-interface or even also REST-only applications?

This could be decided on whether HTML is a valid response-type ...

If yes, please do not enforce the use of doctrine/orm, because I like to use Couchbase and ElasticSearch to organize my data :)

How to disable WWW-Authenticate challenge?

Because of a bug in cordova, in iOS apps responses containing www-authenticate headers are never resolved.

So, what I need to do is somehow remove this header from symfony's response. I made a fresh install of symfony-rest-edition as described in https://github.com/gimler/symfony-rest-edition, then I set the parameter "unauthorized_challenge" of fos_rest key to a blank value but and when I do a request via curl to /notes I still receive the default WWW-Authenticate. And I also need to send a body to the unauthorized response, such as "User disabled" to tell my client that the user is disabled, or not confirmed the email yet. How can I achieve this?

Invalid path to CSS demo.css

Hello,

I think the path to the css in AppBundle layout.html.twig is wrong.
After I cloned the repo from Github, it showed "acmedemo" :
where is should have been "app" :
At least I had to change it that way for it to work properly.

Have a nice day.

InvalidArgumentException: The template should be a string or extend TemplateReference

Hello
with 2.7 branch, after use "composer uptate" command I have this error:
"The template should be a string or extend TemplateReference"

I suspect this framework-extra-bundle update:

  • Removing sensio/framework-extra-bundle (v3.0.12)
  • Installing sensio/framework-extra-bundle (v3.0.14)

all works fine with framework-extra-bundle v3.0.12

stack:

InvalidArgumentException: The template should be a string or extend TemplateReference
    at n/a
        in C:\wamp\www\SymfonyRestEdition\vendor\friendsofsymfony\rest-bundle\FOS\RestBundle\View\View.php line 218

    at FOS\RestBundle\View\View->setTemplate(object(View))
        in C:\wamp\www\SymfonyRestEdition\vendor\friendsofsymfony\rest-bundle\FOS\RestBundle\EventListener\ViewResponseListener.php line 122

    at FOS\RestBundle\EventListener\ViewResponseListener->onKernelView(object(GetResponseForControllerResultEvent), 'kernel.view', object(TraceableEventDispatcher))
        in  line 

    at call_user_func(array(object(ViewResponseListener), 'onKernelView'), object(GetResponseForControllerResultEvent), 'kernel.view', object(TraceableEventDispatcher))
        in C:\wamp\www\SymfonyRestEdition\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\Debug\WrappedListener.php line 61

    at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(GetResponseForControllerResultEvent), 'kernel.view', object(ContainerAwareEventDispatcher))
        in  line 

    at call_user_func(object(WrappedListener), object(GetResponseForControllerResultEvent), 'kernel.view', object(ContainerAwareEventDispatcher))
        in C:\wamp\www\SymfonyRestEdition\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\EventDispatcher.php line 158

    at Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(array(object(WrappedListener)), 'kernel.view', object(GetResponseForControllerResultEvent))
        in C:\wamp\www\SymfonyRestEdition\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\EventDispatcher.php line 46

    at Symfony\Component\EventDispatcher\EventDispatcher->dispatch('kernel.view', object(GetResponseForControllerResultEvent))
        in C:\wamp\www\SymfonyRestEdition\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher.php line 124

    at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch('kernel.view', object(GetResponseForControllerResultEvent))
        in C:\wamp\www\SymfonyRestEdition\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\HttpKernel.php line 144

    at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1')
        in C:\wamp\www\SymfonyRestEdition\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\HttpKernel.php line 62

    at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true)
        in C:\wamp\www\SymfonyRestEdition\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel.php line 69

    at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true)
        in C:\wamp\www\SymfonyRestEdition\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Kernel.php line 184

    at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
        in C:\wamp\www\SymfonyRestEdition\web\app_dev.php line 25

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.