サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
ymmtmsys.hatenablog.com
GETやPOSTなどのHTTPリクエストを受け取り、その処理の中でChannelにデータを送信したい場合、以下のように書くことでメッセージを送信できる。 HelloPhoenix.Endpoint.broadcast_from! self(), "rooms:lobby", "new_msg", %{uid: uid, body: body} http://hexdocs.pm/phoenix/Phoenix.Channel.html の "Broadcasting to an external topic" の箇所に書いてあったのを ここ に合わせて少し変更した。そこの例では channel 側のコードとして書かれているけど、controller 側のコードの中でも使えた(まあ、*.Endpoint モジュールの関数なので当たり前?)。 ちなみに、これで何をしたかったのかというと、flu
Elixir の正規表現は Regexモジュール を使う。 仕事ではPHPを書くことが多い。PHPの正規表現は PCRE関数 が標準的だろう。普段使うPCRE関数をElixirのRegex で置き換えるとしたらどうなるのか? 比較の対象は preg-match と preg_replace の二つにする。理由は、その二つをよく使うので (その二つくらいしか使わないとも言う)。 preg_match と比べて 単純なマッチ 単純にマッチするかどうかを判定する場合, Regex.match?/2 を使う。 <?php echo preg_match('/foo/', 'foo'); // => 1 iex> Regex.match?(~r/foo/, "foo") true 名前なしキャプチャ 名前なしキャプチャを利用する場合, Regex.run/3 を使う。preg_match はキャプチ
とりあえず、アプリが起動する状態になった。 Phoenix・Elixir をちょっとさわって思ったのは、コード上に型が現れてれていないとなにかと調べにくい、ということ。馴染みのある言語なら、型が現れてなくてもなんとかなっちゃうんだけど、馴染みのない言語だとそうはいかない。 結局コード見ててもわからないので、ログを出しまくって、どういう動きをするか、どういうデータが入力・出力されるのかを追っているところ(デバッガみたいなのはある?)。まあ、始めはログの出し方もわからなかったのだけれど。 Logger ドキュメントはこちら debug, info, warn, error の4レベルがある。 使い方としてはこんな感じ(サンプルはここで作ったhello_phoenixプロジェクト)。 defmodule HelloPhoenix.PageController do use HelloPhoeni
ここで デバッガみたいなのはある? と書いた。調べてみたところIEx.pryが使えることがわかった。 使い方 大雑把にいうとこんな感じ IEx モジュールを require する。 ブレイクポイントコードに仕込む。 iex でサーバを起動する リクエストを出す。 ブレイクポイントに到達すると、pry を実行するかを尋ねられるので Y を入力する。 respwan で処理を続行する。 コードはこんな感じ(ベースはここ)。 defmodule HelloPhoenix.PageController do use HelloPhoenix.Web, :controller require IEx def index(conn, _params) do IEx.pry # ブレイクポイント render conn, "index.html" end end できること 変数の内容を表示させる など
Erlang (Elixir) の機能の中で気になっているのが、ホットデプロイだ。といっても、そういう機能があるからといって気軽にデプロイできるものでもないらしいけど。 デプロイに関するスライド。 http://sile.github.io/slide/kbkz_tech_05/#/ http://www.slideshare.net/ohr486/shibuyaex-1-elixir?next_slideshow=1 デプロイ方法 Exrm Exrm (Elixir Release Manager) を使うのがよさげ。 Phoenix 公式でも紹介されている。 設定方法などはそちらを参照。 パッケージ作成 MIX_ENV=prod mix release で本番環境用のリリースパッケージが rel/hello_phoenix/releases の下にバージョンごとに作成される。 起動 $
このページを最初にブックマークしてみませんか?
『ymmtmsys.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く