kopug memo

名古屋で働くとあるWebエンジニアの覚書。

ServersManとsakura-vps でベンチマークとってみた

phpspeed ってのを見つけたので、これを使ってみた。
# ベンチマークの詳細は上記を参考に

で、結果。

ServersMan@VPS - Standardプランの結果

さくらのVPS の結果

体感速度も結構いいですよ、さくら。
もう自宅サーバとはさようならだなぁ。。

genURL()でQueryStringをパス形式にしたくない場合

id:bucci-r に教えてもらった。
symfonyってデフォルトだと以下のようなクエリストリングをつける場合

?a=A&b=B

/a/A/b/B

ってしちゃうんだよね。これを普通にクエリストリングで渡すことができるっぽい!

extra_parameters_as_query_string in factories.yml

ただハマリどころが一点あって、ここにも書いているように

ルート生成に使われていないパラメーターをクエリ文字列に変換することが可能です。

とあります。これって以下が該当するんだよね。

routings.yml

default:
  url:   /:module/:action/*

これがデフォルトだと必ず書いてあるので、上のアスタリスクのせいで、必ずルート生成に利用されちゃう。
"*" を取ってあげると希望する動きになるっぽい!

thx!! id:bucci-r

ControllerのURI PATHのPrefixにごにょごにょしたい場合

Reverse Proxy経由で複数のapplicationを動かしたいってことは良くあると思うんだが、
その時に http://example.com/application -> http://application.backend.local/ みたいな事をすると、
PATHがfrontendとbackendで異なるのでめんどくさい事がある。よね?

そんな時はこれ。http://www.symfony-project.org/reference/1_4/ja/05-Factories#chapter_05_sub_relative_url_root:relative_url_root


thx!! id:bucci-r

PostGISを使う

http://d.hatena.ne.jp/kopug/20091011/1255240821
上記のエントリでPostGISのインストールについて書いたが、今度は実際に使ってみる

やりたい事としては以下のとおり

  1. 携帯のGPSから緯度、経度を取得し、近隣(半径200m以内)の店舗を検索する
  2. 近い順にソートをして一覧を出す

1. DBの作成

$ createdb -U postgres -T template_postgis geomanse

2. テーブルの作成 (※1)

$ psql -U postgres geomanse
CREATE TABLE SAMPLE (id serial);
SELECT AddGeometryColumn('sample', 'point', 4326, 'POINT', 2);
※1 4326って何さ?

# 世界測地系(WGS84)での格納を意味
# 実際には SELECT * FROM spatial_ref_sys WHERE srid=4326 を参照している事を意味するようです

3. データを突っ込む

東京都港区芝公園4丁目2−8の緯度、経度を突っ込む場合(WGS84)
GeomFromText('POINT(35.658671 139.7454)', 4326)
INSERT INTO SAMPLE (point) VALUES (GeomFromText('POINT(35.658671 139.7454)', 4326));

4. 任意の緯度、経度からの距離を求める

SELECT ST_Distance(point, GeomFromText('POINT(35.681382 139.766084)', 4326)) FROM SAMPLE;

ただこの単位だと度になっていると思われるので、メートルにする場合はまた次回で。