Symfonyメモ（ツイート）

Symfonyについて調べたことを、ツイートで書いてたのをまとめてみた。個人的メモ。

認証関係
-------

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">これより簡単なコードで、強制ログインできた。Guardを2つ作って、ファイアウォールにcontext設定して、と色々やってるので、どれが必要だか十分だか理解できてないのがあれだけど。</p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/826327404444422145">2017年1月31日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Symfonyで複数Guardによる認証は動いた。が、片方でログアウトすると、もう片方でもログアウトしてしまう。設定の問題なのか、自分でログアウト処理を書く必要があるのか、さて。</p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/826269947672227840">2017年1月31日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Symfonyの認証を調べてたけど、Securityアノテーションを見逃してた。アクセスコントロールから外れる場合は、こっちを使う感じか。<a href="https://t.co/7mscyoJpj7">https://t.co/7mscyoJpj7</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/823802405510750209">2017年1月24日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">こちらはSymfonyのログイン用トークンを使うときの注意点。プロバイダーキーをファイヤウォール名をプロバイダーキーとして使うということ。<a href="https://t.co/SG2k6tRv7X">https://t.co/SG2k6tRv7X</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/823795912640053248">2017年1月24日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Symfonyの認証の話。余り日本語で書かれたのがないので貴重。 / “[Symfony2]ログインアクションでログインしているか判定したい – イザ！WEB開発者の惚気| PossiLink” <a href="https://t.co/8vgu960wV0">https://t.co/8vgu960wV0</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/823793306882609153">2017年1月24日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">う〜ん、トークンをセッションに保存するのは自分でやってる。serurity.ymlのfirewallにcontext:*のとき、セッション名を_security_*とする…のかな？<a href="https://t.co/nGhFteaVgR">https://t.co/nGhFteaVgR</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/823445160956526592">2017年1月23日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">もう一つ。Tokenにログイン情報が入っているのはわかった。あとは複数のトークンを持てるかどうか。<a href="https://t.co/BTquXdMokF">https://t.co/BTquXdMokF</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/823443242851045376">2017年1月23日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">そして探していた情報っぽい。要はパスワード無しでログインする方法、といったところ。／Automatic post-registration user authentication<a href="https://t.co/rJSprHb9HY">https://t.co/rJSprHb9HY</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/823433961745444865">2017年1月23日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">redditで発見。要は新しいGuard認証を使うのが良い、という話が優勢。<a href="https://t.co/xzSf3ESWNy">https://t.co/xzSf3ESWNy</a> <a href="https://t.co/nn3g3J04T3">https://t.co/nn3g3J04T3</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/823433754232262658">2017年1月23日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">これが一番の参考になったかな。ただしプロバイダーとしてInMemroy使ってる例なので、エンティティを使うには別のページを読まないといけない。<a href="https://t.co/4wkGMYYI1j">https://t.co/4wkGMYYI1j</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/822640971775143937">2017年1月21日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">firewallでログイン画面が引っかかる。認証しないようにしているはずなのに。FOSのときも同じだったので、何か設定をミスってるのだろうけど皆目分からん。</p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/820172331876110336">2017年1月14日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">オフィシャルなドキュメントはこっちか。<a href="https://t.co/h77fD8UJcT">https://t.co/h77fD8UJcT</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/820159939221934080">2017年1月14日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">あと認証部分を勉強する予定だった。<br>ここはドキュメントで、もっとも意味不明なセクション。<a href="https://t.co/7WXCKSNahz">https://t.co/7WXCKSNahz</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/819814484332015616">2017年1月13日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

フレームワーク
-----

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">これか。Symfonyでfactoryを使ってサービスを作る方法。ほぼ直感的に使えそう。<a href="https://t.co/Ov8qHJUgTr">https://t.co/Ov8qHJUgTr</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/821284455109169152">2017年1月17日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">こんな手が。試してみよう。<a href="https://t.co/E1bb8KjjOq">https://t.co/E1bb8KjjOq</a> <a href="https://t.co/CxndUGyA8F">https://t.co/CxndUGyA8F</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/821244153833013249">2017年1月17日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Symfonyのコントローラを作り直した人がいた。これでDIして、ADRで作れると。<a href="https://t.co/jAnd7174vf">https://t.co/jAnd7174vf</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/820875580392378368">2017年1月16日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">初めてSymfonyでそこそこ作ってみて一番驚いたのが、コントローラー。作りもサンプルコードもサービスロケーターを全力で使ってた。全部DIですよ、という人たちが作ってると思ってた。</p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/817554733850202112">2017年1月7日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

ORM/Doctrine2
------

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">ORM使ってて、フォームテキストが未入力だとNULL入いるときがある。そこは空白値にして欲しい。／SQLアンチパターン：フィア・オブ・ジ・アンノウン (恐怖の unknown) on <a href="https://twitter.com/Qiita">@Qiita</a> <a href="https://t.co/FlCPwC1Piv">https://t.co/FlCPwC1Piv</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/821242317826768896">2017年1月17日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">この問題、PHPのDoctrine2でも起こるのかな。エンティティキャッシュはSqliteとかのリソースに突っ込んだらどうなのだろう。 / “我々はいかにして技術選択を間違えたのか？ 2016 - Cybozu Inside O…” <a href="https://t.co/JGWZgMmcJd">https://t.co/JGWZgMmcJd</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/814254295218462720">2016年12月28日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

フォーム
-----

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Symfonyのformと格闘中。思ったのは、FormInterfaceをADRのpayloadみたいな使い方できそうだなと。あくまでCRUD用サービスとフォームビューの間だけど、必要そうな機能は揃ってる。</p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/817572839905632256">2017年1月7日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">バリデーションを追加する方法。データオブジェクトを利用するほうが簡単なんだろうな。<a href="https://t.co/EYQX8EB5pz">https://t.co/EYQX8EB5pz</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/817372143952330752">2017年1月6日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">これとかかな。2012年の記事だけど、まだ使えそう。知識がすぐに古くならないのがSymfonyのいいところでもある。<a href="https://t.co/F4JSpEp7bv">https://t.co/F4JSpEp7bv</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/817371561753657345">2017年1月6日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">フォーム専用のDTOオブジェクトを作って、ゲッター・セッター・アノテーションを作りまくるのかなぁ。あとは力技。</p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/816934337228644352">2017年1月5日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Symfonyを覚えるためデモアプリ作っていて、今のところアノテーションとか非常に気に入っている。ただ、まだ複雑怪奇なフォームがでた場合に対応できる気がしない…</p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/816934174716108800">2017年1月5日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">フォームはHTML5のバリデーションを使うだけで、サーバー側はチェックしなと…　ま、DB登録で例外でるからいっか。いやよくな<a href="https://t.co/jdwy7xW63k">https://t.co/jdwy7xW63k</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/814071590493114369">2016年12月28日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">フォームはHTML5のバリデーションを使うだけで、サーバー側はチェックしなと…　ま、DB登録で例外でるからいっか。いやよくな<a href="https://t.co/jdwy7xW63k">https://t.co/jdwy7xW63k</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/814071590493114369">2016年12月28日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">シンフォニーのサイトを何度読んでもフォーム作成がわからない。そうだ、と思い出して「Symfony2入門」を読み返したら簡単だった。</p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/812623224861138944">2016年12月24日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>



テストについて
---

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Symfonyでphpunitが走らないという報告が。composerでphpunitインストールすると動くとのこと。確かに動いた。依存が多いと色々と問題が出るのだろう。<a href="https://t.co/XoDwE4idvK">https://t.co/XoDwE4idvK</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/819776558525054976">2017年1月13日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">LiipFunctionalTestBundleを使うのがいいのか。<a href="https://t.co/NH2KglgkfM">https://t.co/NH2KglgkfM</a> <a href="https://t.co/WHeSh9Gk9t">https://t.co/WHeSh9Gk9t</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/827771441634381824">2017年2月4日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">SymfonyのテストでFixtureを使う方法。4年も前の話だけど、まだ使えるんじゃないかな。<a href="https://t.co/urCeS2kCJO">https://t.co/urCeS2kCJO</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/827757001119719425">2017年2月4日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

その他
-----

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">SymfonyでマニュアルでCSRFをチェックする方法。<br>これでトークンをフォームに埋め込んでから…<a href="https://t.co/1l3sd2cMgJ">https://t.co/1l3sd2cMgJ</a><br>コントローラ内で確認する。<a href="https://t.co/X3vzdjxeGP">https://t.co/X3vzdjxeGP</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/827047489534513152">2017年2月2日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Symfonyのバリデーションで、エラーメッセージを日本語化する方法。version3.2でも有効だった。<a href="https://t.co/qQKeX2jcHX">https://t.co/qQKeX2jcHX</a></p>&mdash; asaok (@asao_jp) <a href="https://twitter.com/asao_jp/status/827043644167200768">2017年2月2日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>