Archives by date

You are browsing the site archives by date.

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

手順メモ。

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

1
2
3
php composer.phar require jms/serializer-bundle
 
Please provide a version constraint for the jms/serializer-bundle requirement: dev-master

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

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

1
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に名前無しでアクセスさせたい場合。

1
2
3
4
5
hello_world:
    pattern: /hello/{name}
    defaults: { _controller: HogeBundle:Fuga:hello }
    requirements:
        name: ".+"

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

 

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

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

 

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

メモ。

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

1
2
3
4
|
  \/ /| |\/| |
  / / | |  | |__
.

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

1
2
3
4
5
6
7
>
  すんごい長い文章
  すんごい長い文章
  すんごい長い文章
  すんごい長い文章
  すんごい長い文章
  すんごい長い文章

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

 

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

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

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

1
2
3
4
5
firewalls:
    secured_area:
        form_login:
            always_use_default_target_path: true
            default_target_path: /loggedinpage

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

 

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

やり方メモ。

1
2
3
4
5
6
7
8
9
10
11
12
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の情報を取得する。

色々あって便利。

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

1
2
3
4
5
var_dump($request->getBasePath());
var_dump($request->getBaseUrl());
var_dump($request->getRequestUri());
var_dump($request->getUri());
var_dump($request->getUriForPath('/'));
1
2
3
4
5
string(0) ""
string(12) "/app_dev.php"
string(18) "/app_dev.php/login"

的な感じで取得出来る。

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

メモ。

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