phpTweet久しぶりにSymfonyネタでブログ書きます。今回はservices.ymlでコンテナに登録されたオブジェクトのメソッドを実行する方法をご紹介します。apiをphpのサンプル。抜粋するとここの部分。Google_Client();$client->setClientId($OAUTH2_CLIENT_ID);$client->setClientSecret($OAUTH2_CLIENT_SECRET);$client->setScopes('https://www.googleapis.com/auth/youtube');ここをservice.ymlで表現するとこんな感じ。"@youtube.google_client"ここまでは綺麗にかけます。リダイレクトURIを設定する時にどうするべきかリダイレクトURI指定するコードをどう書くか。Googleのサンプルコードの場合。FILTER_SANITIZE_URL);$client->setRedirectUri($redirect);この場合はコントローラとかないので、現在のページをリダイレクト先として設定しています。Symfony使うならRouterを使ってURLを指定したいんですよね。それをservices.ymlで表現したい。services.ymlでRouter::generate()メソッドを実行する悩んでたんですが、普通にドキュメントに記載されていました。["@=service('mailer_configuration').getMailerMethod()"]@=service()を使えばコンテナに登録されているオブジェクトのメソッドが使えるみたいです。"@youtube.google_client"こうやって書けば、router.generateメソッドが呼び出されて、setRedirectUriの設定ができるようになります。最後にここまでservices.ymlで頑張る必要はない気もしますが、ちょっとした時便利な場合もあるので、ぜひぜひ試してみてください。Meetup#11がヒトメディアさんで開催されます。Symfonyが気になる人は、ぜひぜひ遊びにきてください。