PHP

【PHP】filter_input()メソッドめも。

入力値に対してメールアドレス形式か、URL形式かなどを判定してくれる。

例。

filter_input(INPUT_GET, 'email', FILTER_VALIDATE_EMAIL);

他にも豊富にフィルターが用意されている。詳細は下記URL参照。

http://www.php.net/manual/ja/filter.filters.php

 

【PHP】クラス内のメソッド一覧を取得する。

$methods = get_class_methods('myclass');
// or
$methods = get_class_methods(new myclass());

クラス名かクラスのインスタンスを渡せばOK。

 

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

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

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

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

 

【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');

 

【Symfony2.3】KernelのWorkFlowに関して。

わかりやすい文献が公式にあったのでメモ。

http://symfony.com/doc/current/components/http_kernel/introduction.html

イベントの流れがとても把握しやすい。