Archives by date

You are browsing the site archives by date.

【Symfony2.3】FOSRestBundleをインストールする。

手順メモ。

RestBundleはJMSSerializerBundleを必要とするのでまずJMSの方をインストールする。

php composer.phar require jms/serializer-bundle

Please provide a version constraint for the jms/serializer-bundle requirement: dev-master

※バージョンは「dev-master」を指定

次にFOSRestBundleをインストールする。

php composer.phar require friendsofsymfony/rest-bundle 1.3.*

あとはカーネルで両方とも読みこめば完了。

詳細は下記URLを参照されたし。

http://jmsyst.com/bundles/JMSSerializerBundle

https://github.com/FriendsOfSymfony/FOSRestBundle/blob/master/Resources/doc/index.md

 

【Symfony2.3】引数を要するルーティングに引数無しでもアクセス可にする方法。

例えば引数に名前が必要なURIに名前無しでアクセスさせたい場合。

hello_world:
    pattern: /hello/{name}
    defaults: { _controller: HogeBundle:Fuga:hello }
    requirements:
        name: ".+"

requirementsでnameのパターンを上記の様に指定してやればOK。

 

【Yaml】YMLファイルではタブ文字は使用禁止。

使用できるようにすることは出来るらしいけども、使わない方がいいね。

 

【Yaml】ファイル内で改行を行う。

メモ。

先頭にパイプ(|)を挿入すると複数行に渡る改行が保たれるようになる。

|
  \/ /| |\/| |
  / / | |  | |__
.

先頭に大なり(>)を宣言すると複数行のセンテンスがサポートされるが、改行はスペースに置き換えられて認識される。

>
  すんごい長い文章
  すんごい長い文章
  すんごい長い文章
  すんごい長い文章
  すんごい長い文章
  すんごい長い文章

※上記の例にある行頭2マスの半角スペースは出力結果には含まれないので注意。

 

【Symfony2.3】ログイン後のリダイレクトページを指定する。

userBundleを使っていたところ、ある時期を堺にどうやってもログイン後に「/_wdt/…」にリダイレクトされてしまうようになった。
が、この方法で解決。

security.ymlに下記を定義する。

firewalls:
    secured_area:
        form_login:
            always_use_default_target_path: true
            default_target_path: /loggedinpage

「loggedinpage」の部分にログイン後のリダイレクトページを設定すればOK。

 

【Symfony2.3】ymlで定義したイベントリスナにサービスオブジェクトを渡す。

やり方メモ。

services:
    my_service_request: 
        class: Symfony\Component\HttpFoundation\Request
        
    my_service_response: 
        class: Symfony\Component\HttpFoundation\Response
    
    my.listener.before.filter:
        class: Hoge\FugaBundle\EventListener\ControllerListener
        arguments: ['@service_container', '@my_service_request']
        tags:
            - { name: kernel.event_listener, event: kernel.request, method: piyo }

的な感じ。

 

【Symfony2.3】requestオブジェクトからURLの情報を取得する。

色々あって便利。

例えばログインページで実行すると。

var_dump($request->getBasePath());
var_dump($request->getBaseUrl());
var_dump($request->getRequestUri());
var_dump($request->getUri());
var_dump($request->getUriForPath('/'));
string(0) ""
string(12) "/app_dev.php"
string(18) "/app_dev.php/login"
string(39) "http://example.com/app_dev.php/login"
string(34) "http://example.com/app_dev.php/"

的な感じで取得出来る。

【Symfony2.3】containerオブジェクトからrequestオブジェクトを取得する。

メモ。

$request = $this->container->get('request');