ブックマーク / tech.quartetcom.co.jp (32)

  • SymfonyのValidatorを単独で使ってバリデーションする方法 | QUARTETCOM TECH BLOG

    Symfony Advent Calendar 2018 7日目の記事(遅刻)です。 昨日も私の記事でした 巨大なプロジェクトの構成要素を小さなコンポーネントに分けて開発するようになると、バリデーションをSymfonyプロジェクト外で書くことも増えます。 こういうときSymfonyがコンポーネントごとに分かれていて、独立して使用することもできるのが生きてきます。 昔のsymfony1時代との大きな違いですね! 実際にSymfony Validatorでバリデーションしてみる 下記のような Term クラスがあるとします。 <?php namespace Quartetcom\DecBlogDemo\Entity; class Term { /** * @var \DateTime */ private $from; /** * @var \DateTime */ private $to;

    SymfonyのValidatorを単独で使ってバリデーションする方法 | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2018/12/10
    開発部ブログ更新されてましたー!Symfony Advent Calendar 2018のカルテット率(というか @77web 率)がすごい!😂 / “SymfonyのValidatorを単独で使ってバリデーションする方法 | …” — たつきち🐱vue試し中 (@ttskch) December 10, 2018 from
  • 簡単な数独チェッカーのコードで考える抽象化への筋道 | QUARTETCOM TECH BLOG

    カルテットには、社員同士が交流を深める部活がいくつかあります。バレー部やテニス部といった運動系もあれば、(実際には投資をしない)投資部のようなインドアなものもあります。しかし、人見知りな私は、どの部活にも参加していません(汗) でも、プログラマならプログラミング技術を磨きたい! 部活で! というわけで、自分で「プログラミング部」を作り、中途入社したメンバーを半ば強引に誘って、二人で朝活スタイルの部活としてスタートし活動していました。 プログラミング部の活動は、私がプログラミング問題を選び、二人それぞれ問題を解くコードを書くというものです。ただし、問題を解くことだけをゴールとはせず、プログラマが問題をどのように理解したのか、どのような解き方なのかをコードに表現するという部分を中心に据えて取り組みます。なので、問題を解くコードを完成させるのにかかる時間よりも、コードについて議論し、話の展開に応

    簡単な数独チェッカーのコードで考える抽象化への筋道 | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2018/10/19
    簡単な数独チェッカーのコードで考える抽象化への筋道 | QUARTETCOM TECH BLOG — 上條 大 (@Dai_Kamijo) October 19, 2018 from Twitter https://twitter.com/Dai_Kamijo October 19, 2018 at 10:21PM via IFTTT
  • 楽しい型クラス | QUARTETCOM TECH BLOG

    はじめに この記事は型クラスの便利さについて分かち合う記事です。 理解が目的ではないので、なんとなくええやんと思ってもらえれば十分です。 型クラスのイメージ 型クラスとは主に関数型言語に実装されている機能の一つです。(※正確には知りません) 型クラスがあるとこんな関数を作ることができます。 ※サンプルコードは全てscalaです。

    楽しい型クラス | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2018/10/15
    技術ブログ更新!弊社のscala使いが型クラスの便利さについて簡潔に語ってくれてます。 / “type-class” (1 user) — たつきち🐱Angular中 (@ttskch) October 15, 2018 from Twitter https://twitter.com/Dai_Kamijo October 15, 2018 at 01:57PM via IFTTT
  • PhpStormでコードテンプレートを使って*Resolverクラスを楽に作る | QUARTETCOM TECH BLOG

    オープン・クローズドの原則に則ってコードを書こうと思うとResolverクラスをよく使うことになると思います。 PHPerKaigi2018でベストトーク賞を受賞した @hidenorigoto の 「SOLIDの原則ってどんなふうに使うの?」 の最終形態である PHPカンファレンス関西2018で「続・SOLIDの原則ってどんなふうに使うの? オープン・クローズドの原則 センパイのコーディングノート編」 の発表中には IF文禁止ギブス なる言葉も飛び出しました つまり、コードを書いていてIF分岐したくなった箇所はinterfaceに外出ししたうえで、Resolverで解決して使うことができるというわけです。 そのResolverクラスをPhpStormで楽に書くためのコードテンプレを作ったのでシェアします。 設定方法 Preferences → Editor → File and Code

    PhpStormでコードテンプレートを使って*Resolverクラスを楽に作る | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2018/09/21
    開発部ブログ書きましたー / PhpStormでコードテンプレートを使って*Resolverクラスを楽に作る | QUARTETCOM TECH BLOG — ななうぇぶ (@77web) September 20, 2018 from Twitter https://twitter.com/Dai_Kamijo September 21, 2018 at 09:18AM via IFTTT
  • Ray.Diを自分のライブラリ・コンポーネントで使う | QUARTETCOM TECH BLOG

    Ray.Di を知っていますか? 私は普段の開発ではSymfonyを利用しているので、Symfonyの DependencyInjection 機能を使っていますが、最近Symfonyフレームワークを使うほどでない小さなcliアプリで実際に使ってみました。初めて使う場合に戸惑うところ・引っかかったところがあるので、使い方をまとめました。 Ray.Diとは JavaGuice というDIフレームワークの主要な機能を網羅したPHPのDIフレームワークです。 PHPフレームワークの BEAR.Sunday で使われていますが、単独でも利用できます。 BEAR.Sundayで使う場合は専用のアノテーションを使うことが多いのですが、アノテーションを使わずにPHPコードだけでも設定できるので、サードパーティのクラスを使う場合でも問題なく利用することができます。 Ray.Diを使う 早速使ってみまし

    Ray.Diを自分のライブラリ・コンポーネントで使う | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2018/04/02
    技術ブログ書きましたー!Ray.Diを実働させたのが初めてだったので手間取ったところのまとめです。 / Ray.Diを自分のライブラリ・コンポーネントで使う | QUARTETCOM TECH BLOG — ななうぇぶ (@77web) March 30, 2018 from Twitter https://twitter
  • Symfony+Doctrine2でユーザーのフォロー関係を実装する | QUARTETCOM TECH BLOG

    最初に思いついたやり方 User と User を ManyToMany で繋ぐ ググってみてもだいたいこの方法が紹介されている 例: http://www.culttt.com/2014/11/24/creating-twitter-follower-model-using-doctrine/ やってみた 今回は Symfony4 で実装した例を示しますが、コンセプトは Symfony2/3 でもまったく同じなので、適宜読み替えてください エンティティ <?php namespace App\Entity; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\ORM\Mapping as ORM; class User { //

    Symfony+Doctrine2でユーザーのフォロー関係を実装する | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2018/03/13
    Symfony+Doctrine2でユーザーのフォロー関係を実装する | QUARTETCOM TECH BLOG — 上條 大 (@Dai_Kamijo) March 13, 2018 from Twitter https://twitter.com/Dai_Kamijo March 13, 2018 at 07:45PM via IFTTT
  • Symfony4のHttpKernelクラスが処理していること | QUARTETCOM TECH BLOG

    Symfony Advent Calendar 2017の21日目の記事です。 はじめに 新人研修でSymfony4のフレームワーク体のコードリーディングに取り組んでいる澤井です。 弊社が提供するサービスのバックエンドは、主にSymfonyで開発しています。開発に参加するためには、Symfonyに対する深い理解が必要です。そのためにSymfonyの体のコードリーディングを行っています。 コードリーディングは、PhpStormのステップ実行を使って全体の流れを把握した上で、個々のクラスを詳しく見ながら該当箇所の公式ドキュメントを読む、という手順で進めました。 今回は、特に重点的に調べたHttpKernel Componentについて調べたことをまとめてみました。HttpKernel Componentは、HTTPリクエストを受け取ってHTTPレスポンスを返す、Symfony4アプリケーシ

    Symfony4のHttpKernelクラスが処理していること | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2017/12/21
    弊社新人トレーニングシリーズ / “Symfony4のHttpKernelクラスが処理していること | QUARTETCOM TECH BLOG” — Hidenori Goto (@hidenorigoto) December 21, 2017 from Twitter https://twitter.com/Dai_Kamijo December 21, 2017 at 05:43PM via IFTTT
  • 新入社員 コード設計の改善体験談 | QUARTETCOM TECH BLOG

    10月に入社した開発部の澤井です。現在、新人研修を受けています。カルテット開発部では、新人一人に対して教育担当者が二人もつきます。(とても贅沢です) ところで、皆さんはコード設計についてどのような考えをお持ちでしょうか。私は現在、新人研修を通してより良いコード設計について学ぶ日々ですが、残念ながら「これが良いコード設計です」と言えるだけの知識はまだありません。 そこでエントリーでは、新人研修で取り組んだ問題を例にして、実際に自分のコードがどのように変化していったのかを書くことで、私が新人研修を通して学んだこと、考えたことをお伝えできればと思います。 取り組んだ問題:「群島の宝探し」 これは、教育担当の後藤が作成したオリジナル問題です。大まかなルールは以下のとおりです。 群島はスタートとゴール、およびA島〜E島の5つの島からなる プレイヤーは1回〜複数回サイコロを振り、スタートからゴールを

    新入社員 コード設計の改善体験談 | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2017/11/24
    “新入社員 コード設計の改善体験談 | QUARTETCOM TECH BLOG” — Hidenori Goto (@hidenorigoto) November 24, 2017 from Twitter https://twitter.com/Dai_Kamijo November 24, 2017 at 02:00PM via IFTTT
  • プログラマーの設計力を伸ばすための土台づくり | QUARTETCOM TECH BLOG

    カルテットの開発部には、10月から新メンバーが加わりました。新メンバーには、将来メインのプロダクト開発にガッツリと参加してもらうことを期待しており、それに向けた教育の一環として、設計力を伸ばしていくための土台づくりを行っています。この記事では、私が現在行っている新人プログラマー向けの教育を、どのような考え方で行っているのかを紹介します。 前提 今回対象としている新人プログラマーのスキルは以下のようなレベルです。 - Webサイト制作的な案件を一人でこなせる - オブジェクト指向プログラミングについて、書籍などを読み一定以上の知識を持ってはいるが、実務において深く活用したり、他人と意見交換した経験はない この記事で扱っている「設計」は、プログラマーが行うコードの設計、およびコード群の組み合わせ方の設計といったあたりまでを指しています。 また、この記事では、設計の中身(どのような設計が良いのか

    プログラマーの設計力を伸ばすための土台づくり | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2017/11/02
    “プログラマーの設計力を伸ばすための土台づくり | QUARTETCOM TECH BLOG” — Hidenori Goto (@hidenorigoto) October 30, 2017 from Twitter https://twitter.com/Dai_Kamijo November 02, 2017 at 01:21PM via IFTTT
  • Table Driven Testから考える設計の改善 | QUARTETCOM TECH BLOG

    はじめに 最近はプライベートではGoのコードを書いていることが多いのですが、GoではTable Driven Testというやり方が知られています。 このテストコードの書き方が個人的にとても分かりやすく気に入っているので、PHPでテスト書く時も参考にしています。 Table Driven Testを意識してテストコードを書くようにしてから、コードレビュー時に「テストが分かりやすくなった」と言ってもらえたりすることもあったので、ご紹介したいと思います。 Table Driven Testとは Goの公式Githubリポジトリで紹介されているテスト手法の一つです。 一般的には「Data Driven Test」や「Parameterized Test」とも呼ばれているみたいで、特に真新しいしいやり方ではないようです。 PHPのBDDテストフレームワークであるBehatでも、テーブル形式のテスト

    Table Driven Testから考える設計の改善 | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2017/05/17
    見てる: &quot;Table Driven Testから考える設計の改善 | QUARTETCOM TECH BLOG&quot; — azu (@azu_re) May 16, 2017 from Twitter https://twitter.com/Dai_Kamijo May 17, 2017 at 09:27AM via IFTTT
  • マッピング/変換フレームワークとしてのSymfony | QUARTETCOM TECH BLOG

    はじめに WebアプリケーションフレームワークとしてのSymfonyには、フォームやORM、バリデーションetc…といった機能があります。今回は少し視点をずらして、これらの機能の中から、アプリケーション内の何かと何かの「あいだにあるもの」に着目してみます。実は、この「あいだにあるもの」たちの機能をうまく使うことで、アプリケーションコードが想定するデータの形を整えることができます。 例えば、YAMLから設定データを読み込んで、PHPの連想配列で扱うプログラムを記述しているとしましょう。設定データを扱うあらゆるメソッドで、その都度キーの存在有無をチェックしているようなコードを想像してみてください。とてもイヤな感じですね。このようなコードがあったら、単純に無駄なコードが多いという表面的な問題だけでなく、正しいデータの有り様が定まっていないという問題が潜んでいる可能性が大いにあります。そしてこの種

    マッピング/変換フレームワークとしてのSymfony | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2016/12/19
    マッピング/変換フレームワークとしてのSymfony | QUARTETCOM TECH BLOG — 上條 大 (@Dai_Kamijo) December 19, 2016 from Twitter https://twitter.com/Dai_Kamijo December 19, 2016 at 01:37PM via IFTTT
  • Composerで依存しあう複数のパッケージを同時開発する場合のTIPS(開発の流れ編) | QUARTETCOM TECH BLOG

    この記事を書くにあたって、これまで何度か読んだことのあったComposerのソースを再度読み直して理解しようとしてみました。ですが、Composerのソースってなんだか難しくて、分かった!という感触はまだまだつかめていません。Composerのソースがひどくスパゲティだ!なんてことはないのですが。 おそらくこれはソースの問題というよりも、私自身の、取り扱っている問題そのものに対する理解が浅いからなのだろうと、現時点では結論づけています。ひとまずComposerに登場する最も主要な構成要素を、図にまとめておきます。 ところで、前回の記事では、Composerがvendorディレクトリ配下のパッケージ内の状態をどのように管理しているのかを簡単に解説しました。 今回は、複数のパッケージを同時に開発する場合の流れを例にして解説します。 注:複数のパッケージを開発するときに、必ずこの流れでないといけ

    Composerで依存しあう複数のパッケージを同時開発する場合のTIPS(開発の流れ編) | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2016/10/30
    Composerで依存しあう複数のパッケージを同時開発する場合のTIPS(開発の流れ編) | QUARTETCOM TECH BLOG — 上條 大 (@Dai_Kamijo) October 30, 2016 from Twitter https://twitter.com/Dai_Kamijo October 30, 2016 at 03:16PM via IFTTT
  • Symfony2でTypeScriptなAngularJSを使う方法 | QUARTETCOM TECH BLOG

    Angular2のRCリリースが順調に行われている中、今更ながらAngularJS記事です。 TypeScriptを使ったAngularJSアプリケーションをどのようにしてSymfony2フレームワークに組み込むかといった話が主になります。 おまけコンテンツとして、Browserifyがなかった時代に作られたAngularJSをCommonJSでどのようにコードの分離を行えば良いかも紹介します。 はじめに 弊社ではSymfony2のバンドル毎に比較的大きなJSのアプリケーションが存在しており、バンドル間でJSの依存を共有しないようにして独立性を高めに保っています。 こういった背景がありバンドル毎に独立してJSがビルドできる環境、というのが今回の記事内容になりますのでご注意ください。 ゴール バンドル毎にnpmパッケージをインストールする バンドル毎にJSをビルドする ビルドしたJSのURL

    Symfony2でTypeScriptなAngularJSを使う方法 | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2016/07/15
    カルテットコミュニケーションズ技術ブログ更新! 「Symfony2でTypeScriptなAngularJSを使う方法」 #quartetcom #symfony_ja — Hidenori Goto (@hidenorigoto) July 8, 2016 from Twitter https://twitter.com/Dai_Kamijo July 15, 2016 at 09:55AM via IFTTT
  • Docker Compose + Nginx + SilexでPHPアプリケーションを動かしてみる | QUARTETCOM TECH BLOG

    はじめに Dockerは何となく触ってみてはいたものの、Docker上で格的にWebアプリケーションを構築したことがなかったので、練習も兼ねて趣味プロダクトを以下の構成で作ってみました。 Docker Docker Compose Nginx Silex 恥ずかしながらDocker ComposeもNginxも今回初めて触ったので、いろいろ間違った使い方をしているところもあるかもしれませんが、お気付きの点があれば @ttskch まで一言いただければ幸いです。 ちなみに今回作ったのは audio2video というサービスで、音声ファイルを動画ファイルに変換するだけのものです。サービスの大まかな紹介については Qiitaに記事を書きました ので、よろしければこちらもご参照ください。 なお、今回作ったものはデータの永続化を必要としないアプリだったので、データボリュームの話とかは出てきません

    Docker Compose + Nginx + SilexでPHPアプリケーションを動かしてみる | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2016/07/08
    Docker Compose + Nginx + SilexでPHPアプリケーションを動かしてみる | QUARTETCOM TECH BLOG あとで、読む — 上條 大 (@Dai_Kamijo) July 8, 2016 from Twitter https://twitter.com/Dai_Kamijo July 08, 2016 at 05:23PM via IFTTT
  • PHP PhantomJS を使ってPHPでヘッドレスブラウジング | QUARTETCOM TECH BLOG

    はじめに PHPアプリケーションからWebアプリケーションに対してアクセスすることは多々あります。もっともよくあるケースはREST APIなどのテキストのみを返すWebアプリケーションへのアクセスかと思います。しかしまれにGoogle ChromeやFirefoxを操作したときのようにJavaScriptの動作を伴ったアクセスを行いたいときもありますよね。 PHPにはV8jsという拡張モジュールもあるようですが、今回は PHP PhantomJS を利用してその要件を実現することにします。 PHP PhantomJSとは PHP PhantomJSは別途インストールしたPhantomJSをPHPから使うためのインターフェイスを提供してくれるライブラリです。PhantomJSはいわゆる「ヘッドレスブラウザ」というものでGUIを持たないブラウザです。 当エントリでは基礎知識としてPhantom

    PHP PhantomJS を使ってPHPでヘッドレスブラウジング | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2016/04/07
    これはよさげ。 さっそく試してみる。 PHP PhantomJS を使ってPHPでヘッドレスブラウジング | QUARTETCOM TECH BLOG — Yosuke Karasawa (@karakaram) June 1, 2016 from Twitter https://twitter.com/Dai_Kamijo June 01, 2016 at 08:40PM via IFTTT
  • JavaScriptのPromiseオブジェクトについて調べた事 | QUARTETCOM TECH BLOG

    JavaScriptのPromiseオブジェクトについて調べた事を紹介します。 目次 同期処理と非同期処理 Promiseとは何か ES6 Promiseのコンストラクタ関数 コンストラクタに渡した関数内で発生したエラー Thenable Static Method 並列処理 逐次処理 アンチパターン JasmineによるPromiseオブジェクトのテスト Promiseオブジェクトのライブラリ「Q」の紹介 Deferred AngularJSの$q ひとこと 私が敢えて書かずともPromise/Deferredについての解説サイトは溢れるほど存在します。なぜそこに重ねるように同じ記事を書いたのか? 1ヶ月ほど前の私の意識は「Promiseオブジェクト?あー、then()て呼ぶやつね」という程度でした。よく知らずに使っているとアンチパターンに出てきたような使い方をしているところも多々あり、

    JavaScriptのPromiseオブジェクトについて調べた事 | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2016/03/22
    技術ブログ更新!JSのPromiseについての網羅的なまとめ記事!全13話構成の大作記事ですw JS力低い僕でも深く理解できたので、PromiseとかDeferredとかイマイチよく分からんって人は是非読んでみてください! — kanemoto aka たつ
  • Haydnを使った掛け合わせデータ生成 | QUARTETCOM TECH BLOG

    カルテットコミュニケーションズで開発しているLisketには、アカウントCSV作成ツールというツールがあります。このツールを使うと、以下のようなことができます。 例えば、以下のようにある程度規則的な構成であれば、数万行規模のCSVでも非常に簡単に作成することができます。 1広告グループ1キーワード構成 各広告グループに広告をA/Bの2パターン作成 各広告文は、統一的な文言で、広告グループごとにキーワードを挿入する このように、何らかの基礎データを元に、規則的にデータを生成する処理のコアとして、Haydnというエンジンを開発しました。Haydnは現在、OSS(二条項BSDライセンス)で公開しています。 今回は、Haydnを使うとどのようにデータの生成規則を記述して実行できるのかを、簡単な実例で解説します。 前提 例えば元となるデータとして、次のようなものがあったとします。 1つめのキーワード

    Haydnを使った掛け合わせデータ生成 | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2016/02/27
    PHPカンファレンスのDDDセッションで出てきた話の元ネタはこれかな? 後で読む//Haydnを使った掛け合わせデータ生成 | QUARTETCOM TECH BLOG — 上條 大 (@Dai_Kamijo) February 27, 2016 from Twitter https://twitter.com/Dai_Kamijo February 27, 2016 at 10:29
  • 活用例から見るSymfonyのしくみ (1) - 連想配列データとサービスコンテナ | QUARTETCOM TECH BLOG

    @hidenorigotoです。 1/24日のSymfony Meetupで、「LisketでのSymfony活用例紹介」と題して、Symfonyの機能をやや高度に利用する例を紹介するLTをしてきました。このような使い方の例を今後このブログで紹介するとともに、Symfonyの内部のしくみを探ってみようと思います。 今回はLTで発表したうちの1つ目のものを、少し詳しく解説します。 連想配列のデータ アプリケーションで、ツリー構造のデータ定義などを連想配列で扱いたいことがあります。カルテットで開発しているLisketでは、各ユーザーの契約状態によって利用可能なツールセットが変わりますが、そのような状態からは独立して、ベースとなるメニューツリーの構造定義を持っています。 階層を持ったデータを記述できるフォーマットはいくつかありますが、Symfonyには標準でYAMLコンポーネントがありますので、

    活用例から見るSymfonyのしくみ (1) - 連想配列データとサービスコンテナ | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2016/02/17
    技術ブログ更新しましたー!Symfonyのサービスコンテナの活用例!(先日のSymfony MeeupのLTの補足記事です) #symfony_meetup #symfony_ja / “活用例から見るSymfonyのしくみ (…” — kanemoto aka たつきち (@qckanemoto) February 15, 2016 from Twitter
  • SpBowerBundleのキャッシュエラーを解決する | QUARTETCOM TECH BLOG

    このエントリーは Symfony Advent Calendar 2015 24日目の記事です。 昨日は @ochi51 さんの 「CybozuHttpBundleについて」 でした。(2015/12/24 9:00 現在未投稿 ) SpBowerBundleはbowerでインストールしたパッケージをSymfonyのアセットにハンドリングしてくれる便利なバンドルです。 このバンドルのキャッシュエラーで非常にハマった時の事例を紹介します。 この記事を書いた環境 Symfony 2.7 SpBowerBundle 0.11 SpBowerBundleの簡単なおさらい インストール SpBowerBundleのコマンドを使用するにはnpmパッケージbowerがインストールされている必要があります。 https://www.npmjs.com/package/bower SpBowerBundle

    SpBowerBundleのキャッシュエラーを解決する | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2015/12/26
    Symfony Advent Calendar 24日目の記事を公開しました!割とハマりポイントなSpBowerBundleのキャッシュとの奮闘劇! #symfony_ja / “SpBowerBundleのキャッシュエラーを解…” — kanemoto aka たつきち (@qckanemoto) December 24, 2015 from Twitter https://tw
  • イベントディスパッチャーとイベントリスナー | QUARTETCOM TECH BLOG

    イベントディスパッチャーとイベントリスナーの関係を整理しながら、SymfonyのEventDispatcherコンポーネントを使って、簡単な実装をしてみようと思います。 主要なクラス イベント イベントディスパッチャー イベントリスナー イベント 何かしら動作や変更をする(した)タイミングや事象。 こうやって書くと分かりづらいですが、JavaScriptのonClickイベントなどは比較的に目にすることが多いのではないでしょうか。 イベントディスパッチャー イベントを発行する人。 トリガーとか、エミッターという名前が付くこともあります。 イベントリスナー 発行されたイベントを聞く人。 イベントディスパッチャーがイベントを発行するのですが、それを受けて色々処理をするのがイベントリスナーになります。 主要なクラスの関係 これらが以下の様に絡みます。 イベントが発生する(イベントディスパッチャー

    イベントディスパッチャーとイベントリスナー | QUARTETCOM TECH BLOG
    Dai_Kamijo
    Dai_Kamijo 2015/12/17
    イベントディスパッチャーとイベントリスナー | QUARTETCOM TECH BLOG — 上條 大 (@Dai_Kamijo) May 2, 2016 from Twitter https://twitter.com/Dai_Kamijo May 02, 2016 at 12:00PM via IFTTT