[Symfony]Cookieにsecure属性を付与する

Symfonyで設定する方法

個別に実装を書く必要はありません。factories.ymlに以下を追加するだけです。

all:
(省略)
  storage:
    class: sfSessionStorage
    param:
      session_cookie_secure: true
(省略)

以前の記事でも紹介しましたが、Javaの場合は以下のサイトをご参照ください。
[Java]SSL環境下でCookieにsecure属性を付与する
※この記事はTomcatのバージョンが低く – ver5 – 、SSLアクセレレータ配下でデフォルトのオプション(server.xml)で設定できない場合の実装方法です。
Tomcatのバージョンが高い – ver6以降 – 場合はSSLアクセレレータ配下で通信がHTTP(HTTPSでない)の場合でもデフォルトのオプションでsecure属性をつけてくれます。

すごく簡単。

[Symfony]jsonレスポンスを返す設定方法

外部API

最近では、WebサービスとしてAPIが多く提供されています(Google Map API…)。そのコンテンツを充実させるのに注力するために、ここでは外部APIとしてよくある「json」レスポンスを返す方法について紹介します。

例)
Google Map API
ATND API

jsonレスポンスを返すための設定

この記事はPHPとSymfonyをベースとした実装方法を紹介していきます。従ってPHPおよびSymfonyの基礎知識はある前提で紹介していきます。

まず、レスポンスとしてjsonを返すので、アプリケーションのcontent-Typeをapplication/jsonにします。また、HTMLとしてのレスポンスを返す必要がないのでhas_layoutもfalseとします。それらの設定はview.ymlにて設定可能です。

default:
  http_metas:
    content-type: application/json; charset=UTF-8
#   通常の場合
#   content-type: text/html

...

  has_layout: false
# 通常の場合
# has_layout: true
  layout: layout

[PHP]HTTPリクエスト実行時にタイムアウトを指定する

タイムアウトを設定する要件

WEBシステムを作成していて、外部との通信に処理がかかった場合にタイムアウトを検知して、ハンドリングを行いたいという要件はよくある話、PHPで実装した場合にはまったのでメモ。

PHPでHTTPリクエストを実行する方法

大きく以下の三つがあります。
1. file_get_contents
2. fsockopen
3. curl

タイムアウトを検証するために

適当なPHPファイルを用意します。こんな感じで書いておけば、OK.

<?php
// 10秒スリープ
sleep(10);
?>

file_get_contentsで動かなかった実装

/**
  * HTTPリクエストを実行します。
  * @param string $url HTTPリクエストを実行する対象URL
  * @param string $header 送信するHTTPヘッダ
  * @param string $post 送信するPOSTパラメータ
  */
function request($url, $header, $post) {
	$options = array(
		'method' => 'POST',
		'header' => $header,
		'content' => $content,
		'timeout' => 30
	));
	$context = stream_context_create($options);
	$f = file_get_contents($url, false, $context);

	var_dump($f);
}

timeoutで指定すれば問題ないと思ったのですが、そんなことはなかった、、、いろいろ調べた結果「stackoverflow」に無理だよと。

curlでの動く実装

/**
  * HTTPリクエストを実行します。
  * @param string $url HTTPリクエストを実行する対象URL
  * @param string $header 送信するHTTPヘッダ
  * @param string $post 送信するPOSTパラメータ
  */
function request($url, $header, $post) {
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($ch, CURLOPT_POST, TRUE);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
	curl_setopt($ch, CURLOPT_TIMEOUT, 30);
	
	$f = curl_exec($ch);
	curl_close($ch);
	
	var_dump($f);
}

これで、問題なく動きました。

file_get_contentsでどうにかこうにかできないかと相当やりましたが、無理です。curlを使いましょう。

[Book]「また会いたい」と思われる人の38のルール

要約

たった1秒の「反応」で、人生は劇的に変わる!

仕事も恋愛も、相手から「また会いたい」と思われてこそ、
目標を達成できるのです。

そのために最重要視すべきことは、「反応をよくする」ということです。

それを実践するだけで、仕事の幅もみるみる広がり、
いいことが次々と舞い込んでくるようになるのです。

◎人生はたった1秒の反応で決まる!
◎表情の印象は5ミリで変わる!
◎姿勢が運勢を左右する
◎恐いくらい本性が出る手癖、足癖
◎ほめられたら、第一声は『ありがとう』
◎人間関係もビジネスも『損して得取れ』
◎相手の心に届く『巻き込みアクション』をする
◎人と縁を切ることを恐れるな
◎相手にとって『意外に失礼な言葉』を使うな
◎いつも笑顔でいるのはやめよう!
◎ドン引きされる余計な一言は使うな
◎好かれようとするのはやめよう!

等々、実践すれば、その場ですぐに効果があらわれる
ルールが満載です。

Amazonより

目次

Part1 「また会いたい」と思われる人の考え方のルール
Part2 「また会いたい」と思われる人の見た目のルール
Part3 「また会いたい」と思われる人の行動のルール

感想

日々何気なく行っているコミュニケーションも、頭を使いながらすることで、最終的な結末も変わってくる。そう考えると、日々の会話も慎重に・大事にしなければならないなと思わされる。


[Book]ヤクザ式 ビジネスの「かけひき」で絶対に負けない技術

要約

市場原理主義が支配する弱肉強食の現代は、“勝つためには何でもあり”のヤクザ界に近づいている。すなわち、不況が続くビジネス界を生き抜くための手っ取り早い方法は、ヤクザの交渉術を学び、駆使することだ。週刊誌記者時代に数多くのヤクザを取材してきた著者が、相手を制し、責任を取らせ、自分に有利な結果を導く最強の交渉術を徹底解説。

Amazonより

目次

第1章 タフネゴシエーションを制する技術
第2章 ライバルに差をつける技術
第3章 部下を思いのままに操る技術
第4章 上司を相手に自分の価値を高める技術
第5章 クライアントの心をつかむ技術
第6章 勝利の種をまく技術
第7章 大逆転を呼び込む技術

感想

ヤクザとビジネスを関連づけて、よりよいビジネスマンとしての立ち振る舞いを説いた本。印象に残った言葉をつらつら綴っていきます。

・ミステリアスであれ。相手に自分の底を握らせるな。

・相手にケツを持たせる。

・失敗した部下へかける言葉は「それでどうするの?」、部下に考えさせ行動させる。言い訳することが以下に無意味かを身をもって知らしめる。

・人間は、能力に負荷をかけて成長するというが、「部下に能力以上の仕事を与え、成功体験を積ませる」という手法は誤っている。失敗することで、業務に与える影響が小さいような仕事でプレッシャーをかけるべき。

・優秀なビジネスマンは自分自身を売り込むのではなく、自分が描く会社のビジョンを売り込み、副次的に自分の仕事を手に入れる。

・言葉の手形をきらし、それをベースにばんばんプレッシャーをかける。

・適材適所の人間配置ではなく、適所に適材を配置する。部下を育てようとは甘い、雑草だと思い踏みつぶせ。生えてこないやつは一生のびない。

・部下を飴でつるのではなく、危機感を持った状況を演出しよう。

・問題の責任を第三者に転嫁し、自分と相手は被害者であると思わせ連帯感を生む技術。

・結果と次のアクションに要点を絞って報告しよう。

・クライアントから情報を求めるだけではなく、まず自分から提供しよう。情報を提供できる人間になれば、少なくとも会って悪い気はしない。

[株]HumbleFinanceを使ってみた

作ったもの

Go To Chart Navi

Humble Finance

チャートをHTML5で描画してくれるJavascriptフレームワークです。これを使ってWEBページを作ってみます。

Humble Software Development

他に使ったライブラリとか

CHAPI! – 株価API
株価を検索するためのフリーAPIです。IKACHI Projectなる団体が管理しているらいです。
ここが提供する四本値データと銘柄データを利用してチャート描画に必要なデータを収集しています。

IKACHI Project

Prototype
Humble Financeの動作条件として必須なJavascriptフレームワーク。

Prototype

JQuery
Javascriptフレームワーク。Prototypeと文法上競合するので記述方法に気をつけます。

JQuery

KickStart
cssフレームワーク。

KickStart

さあ、どうぞ

PHP & Symfonyで実装しました。

Go To Chart Navi