タグ

ブックマーク / phpmentors.jp (119)

  • 11月30日(金)、12月1日(土) PHPメンターズトレーニングセミナー「Symfony2によるWebアプリケーション開発入門 2日間コース」開催のご案内

    Alert こちらのご案内分は受付終了いたしました この度PHPメンターズは、2012年11月30日(金)と12月1日(土)に東京でPHPアプリケーションフレームワークSymfonyのトレーニングセミナー Symfony2によるWebアプリケーション開発入門 2日間コース を開催いたします。 Symfonyとは、MVCアーキテクチャーによって複数のレイヤーを関係付けるPHPアプリケーションフレームワークであり、Webアプリケーション開発における複雑な問題を解決するものです。 私たちは、開発対象となる事業や技術の分野(ドメイン)に関する問題を解決することがソフトウェアの中心的な目標であり、開発者はその目標の達成に注力しなければならないと考えています。しかしながら、現実のソフトウェア開発においては様々な技術的課題が山積しており、開発者の能力はややもすればそのような課題に向けられがちですが、先人

    11月30日(金)、12月1日(土) PHPメンターズトレーニングセミナー「Symfony2によるWebアプリケーション開発入門 2日間コース」開催のご案内
  • PHPカンファレンス2012で「実践Dependency Injection」の講演を行いました

    2018年1月10日に開催された DCI Tokyo 1 に続き、2018年3月27日に DCI Tokyo 2 が開催されました。今回も James Coplien @jcoplien さんをお招きしてのトークセッションとなりました。会場は 株式会社ヴァル研究所 様に提供していただきました。 セッションは、前回同様 @remore さんと @ganchiku さんによる同時通訳とともに進められました。 今回のテーマはマルチパラダイムデザイン(Multi-Paradigm Design: MPD)の中核を成し、DCI / リーンアーキテクチャ(Lean Architecture)とも深く関係する 共通性/可変性分析 でした。 レポートは @smori1983 が担当させていただきます。 当日の様子は Coplien さんの許可を得て YouTube の DCI Tokyo 公式アカウントに

    PHPカンファレンス2012で「実践Dependency Injection」の講演を行いました
  • MakeGood Tip #1: Pyrusによるユーザー固有のPEAR環境の構築とMakeGoodからの利用

    MakeGoodでテスティングフレームワークを使う場合の選択肢として、プロジェクトの外部に配置されているパッケージを使う方法と、内部に配置されているパッケージを使う方法があります。今日ではComposerを使うことで、開発時のみに必要とされるパッケージでも簡単にプロジェクトの内部に配置することができるようになりました。 必要なパッケージの多くをプロジェクトの内部に配置することは、アプリケーションの動作を保証する上で有用なプラクティスといえるでしょう。しかし、Eclipse PDTからの利用を考慮すると、多くのプロジェクトで使われることが予想されるテスティングフレームワークやモッキングフレームワーク等について、単一の環境のものを使うことによるパフォーマンス上のメリットは小さくはありません。また、通常のフレームワークやライブラリと比較すると、テストコードの動作に与える影響は極めて小さいため、外

    MakeGood Tip #1: Pyrusによるユーザー固有のPEAR環境の構築とMakeGoodからの利用
  • PHPカンファレンス2012でDIについて講演します

    2018年1月10日に開催された DCI Tokyo 1 に続き、2018年3月27日に DCI Tokyo 2 が開催されました。今回も James Coplien @jcoplien さんをお招きしてのトークセッションとなりました。会場は 株式会社ヴァル研究所 様に提供していただきました。 セッションは、前回同様 @remore さんと @ganchiku さんによる同時通訳とともに進められました。 今回のテーマはマルチパラダイムデザイン(Multi-Paradigm Design: MPD)の中核を成し、DCI / リーンアーキテクチャ(Lean Architecture)とも深く関係する 共通性/可変性分析 でした。 レポートは @smori1983 が担当させていただきます。 当日の様子は Coplien さんの許可を得て YouTube の DCI Tokyo 公式アカウントに

    PHPカンファレンス2012でDIについて講演します
  • Zend\Diを使ったDIの自動ワイヤリング

    「Pimpleでシンプルに正しくDIを理解する」の記事では、シンプルなDIコンテナPimpleにオブジェクトの依存関係の知識を集約する方法について解説しました。Pimpleの場合はサービスオブジェクトのファクトリーとして機能する無名関数の中に依存オブジェクトを記述しました。このように、実際に利用する依存オブジェクトを決めることをワイヤリングと呼びます。 今回は、ほぼ同一のオブジェクトモデルに対して、Zend Framework 2.0のDIライブラリ(Zend\Di)を使うように置き換えてみます。一般的にDIを扱う場合、依存関係の定義とワイヤリングのために何らかのコード―これは何らかの設定言語だったりプログラミング言語だったりします―を記述しなければならず、ある程度の規模以上のモデルクラス群をDIコンテナで管理する場合、定義のコーディング量がばかにならくなってきます。しかし、型を持ったプロ

    Zend\Diを使ったDIの自動ワイヤリング
  • Zend\DiをComposerでインストールする

  • WEB+DB PRESS PHP連載第2回「Phake,Mockeryによるオブジェクト指向プログラミング」を執筆しました

    2018年1月10日に開催された DCI Tokyo 1 に続き、2018年3月27日に DCI Tokyo 2 が開催されました。今回も James Coplien @jcoplien さんをお招きしてのトークセッションとなりました。会場は 株式会社ヴァル研究所 様に提供していただきました。 セッションは、前回同様 @remore さんと @ganchiku さんによる同時通訳とともに進められました。 今回のテーマはマルチパラダイムデザイン(Multi-Paradigm Design: MPD)の中核を成し、DCI / リーンアーキテクチャ(Lean Architecture)とも深く関係する 共通性/可変性分析 でした。 レポートは @smori1983 が担当させていただきます。 当日の様子は Coplien さんの許可を得て YouTube の DCI Tokyo 公式アカウントに

    WEB+DB PRESS PHP連載第2回「Phake,Mockeryによるオブジェクト指向プログラミング」を執筆しました
  • Pieceの中のSymfony #3: Dependency Injectionコンポーネント

    Piece FrameworkのプロダクトのひとつStagehand_TestRunnerは、CLIでユニットテストを実行するための継続的テストランナーです。Stagehand_TestRunner v3の実装には多くのSymfonyコンポーネントが使われています。今回はStagehand_TestRunnerを動作させる上で重要な役割を果たしているDependency Injectionコンポーネントについて具体的な使い方を解説します。 Symfony Dependency InjectionコンポーネントDependency InjectionコンポーネントはSymfonyにおけるDIコンテナの実装であり、WebアプリケーションフレームワークとしてのSymfonyの基盤となるプロダクトです。サービスの依存性とその注入方法の定義、サービスの作成・取得、サービスへの依存性の注入、といったD

    Pieceの中のSymfony #3: Dependency Injectionコンポーネント
  • print_oで複雑な構成のオブジェクトグラフをビジュアライズする

    PHPにはvar_dump()という関数があり、階層構造を持つオブジェクト(オブジェクトグラフ)をテキスト表現にできます。この情報を、グラフィカルで直感的に分かりやすい形式で出力するためのユーティリティがprint_oです。@koriymさんが開発されています。 koriym/print_o An object graph visualizer for PHPprint_oのインストール方法print_oはPHPのライブラリとしては単独で利用可能です。Webブラウザへの描画用に外部のJavaScript/CSSを利用していますが、これらはGoogleGitHubホストされたファイルを読み込むようになっています。したがってインターネットに接続された環境であれば、print_o体のインストール以外に特別な手順は不要です。 たとえばcomposerを利用する場合は、composer.jso

    print_oで複雑な構成のオブジェクトグラフをビジュアライズする
  • Pimpleでシンプルに正しくDIを理解する

    オブジェクト指向でソフトウェアを実装していると、オブジェクトの生成に一連の手続きが必要なものがでてきます。このような生成に関する手続きがあちこちのソースコードへ散在すると、望ましくない状況になることは想像に難くないでしょう。この問題に対処するために、Simple FactoryやFactory Methodといったデザインパターンがあり、オブジェクトの生成に関する手続きや関連オブジェクトも含めたオブジェクトの構成(オブジェクトコンストラクション)に関する知識は1箇所にまとめるということが定石となっています。 しかし、単にファクトリーを導入するだけだと、オブジェクトの構成処理は分離・隠蔽できても、利用オブジェクトがファクトリー自体に依存してしまうことになります。このような試行錯誤の歴史から登場したのがDependency Injection(依存性の注入)パターンです。Dependency

    Pimpleでシンプルに正しくDIを理解する
  • コードの抽象度を整える

    コードの読みやすさ(readability)はソフトウェアの保守性を高め、より価値のあるものにします。コードの読みやすさを向上させるために抽象度を整えることは、プログラマーの日常的な活動です。今回はコードの抽象度を整えるための指針について考えてみます。 全体と詳細他のメソッドを呼び出すコードでメソッドを構成する場合、メソッドは、それぞれがほぼ同じ抽象度になるようにしよう。 — Kent Beck 実装パターン p.95 8章 メソッド 複合メソッド 上記はKent Beck氏によるメソッドの実装パターンの一つ複合メソッドの冒頭にある文です。以前の私がどのような指針を持ってメソッドを分割していたのか、今となっては正確に思い出すことはできませんが、おそらく1メソッド40行程度を目安に分割可能なコード片を抽出したものにそれらしい名前を付けていたと思います。パターンにより、そのようなものから脱却

    コードの抽象度を整える
  • Eclipseで快適にPHPアプリケーション開発を行うためのプラグイン5選

    Warning 記事はEclipseの過去のバージョンを対象としたものです。今から環境を構築される場合は、Eclipse Kepler (4.3)向けに書きなおした記事「Eclipse Kepler (4.3)で作るPHPアプリケーション開発環境」をご覧ください。 2009年の秋にMakeGoodの開発を始めた頃、私の開発環境は大きく変わりました。GNU EmacsからEclipseへ、すなわちテキストエディターから統合開発環境(IDE: Integrated Development Environments)への変更です。統合開発環境には多くの利点がありますが、型やメソッドの定義・参照へのアクセスの容易さはさまざまなソフトウェアを読み解く上で大いに役立っています。 EclipseはOSGiという優れたモジュールシステムを採用しており、OSGiバンドルであるEclipseプラグインだけで

    Eclipseで快適にPHPアプリケーション開発を行うためのプラグイン5選
  • Practical Symfony #15: Swift Mailerによる日本語メールの作成

    Swift Mailerは優れたメール送信ライブラリであり、Symfony Standard Editionにおける標準のメール送信コンポーネントです。バージョン4.1.8までは文字エンコーディングにISO-2022-JPを使った日語メールがサポートされていませんでしたが、先日リリースされたバージョン4.2.0でついにサポートされました。(@ganchikuさん、ありがとうございます。) Swift Mailerの初期設定Swift Mailerのドキュメントには日語メールを使うための初期設定が以下のように記述されています。 Using Swift Mailer for Japanese Emails - Documentation – Swift Mailer require_once '/path/to/swift-mailer/lib/swift_required.php'; S

    Practical Symfony #15: Swift Mailerによる日本語メールの作成
  • WEB+DB PRESS PHP連載第1回「Behatによる振舞駆動開発」を執筆しました

    2018年1月10日に開催された DCI Tokyo 1 に続き、2018年3月27日に DCI Tokyo 2 が開催されました。今回も James Coplien @jcoplien さんをお招きしてのトークセッションとなりました。会場は 株式会社ヴァル研究所 様に提供していただきました。 セッションは、前回同様 @remore さんと @ganchiku さんによる同時通訳とともに進められました。 今回のテーマはマルチパラダイムデザイン(Multi-Paradigm Design: MPD)の中核を成し、DCI / リーンアーキテクチャ(Lean Architecture)とも深く関係する 共通性/可変性分析 でした。 レポートは @smori1983 が担当させていただきます。 当日の様子は Coplien さんの許可を得て YouTube の DCI Tokyo 公式アカウントに

    WEB+DB PRESS PHP連載第1回「Behatによる振舞駆動開発」を執筆しました
  • Symfony勉強会#6でSymfonyとドメイン駆動の話、モックによるオブジェクト指向の話をしてきました

    2012年6月30日に株式会社VOYAGE GROUP様にて開催されたSymfony勉強会 #6にスピーカーとして参加し、次の2つの講演をさせていただきました。 一歩先ゆくエンジニアから見たSymfonyオブジェクトの振舞を明確化するためのモックについて一歩先ゆくエンジニアから見たSymfonySymfony勉強会の最初の講演として、一歩引いた目線でSymfonyというフレームワークの良さと、ドメインモデルを大切にすることの重要性などについて講演しました。 Symfony勉強会#6 一歩先ゆくエンジニアから見たSymfonyオブジェクトの振舞を明確化するためのモックについて勉強会の午後のバラエティセッションの1つとして、オブジェクト指向設計、オブジェクトの責務とコラボレーションに着目するためのツールとしてのモックオブジェクトの紹介と、Symfonyのテストコードでモックオブジェクトが使われ

    Symfony勉強会#6でSymfonyとドメイン駆動の話、モックによるオブジェクト指向の話をしてきました
  • 8月24日(金) PHPメンターズトレーニングセミナー「Symfony2によるWebアプリケーション開発入門」開催のご案内

    Alert こちらのご案内分は受付終了いたしました この度PHPメンターズは、2012年8月24日(金)に東京でPHPアプリケーションフレームワークSymfonyのトレーニングセミナー「Symfony2によるWebアプリケーション開発入門」を開催いたします。 トレーニングセミナーは、基礎編・実践編の二部構成となっており、基礎編ではSymfonyでWebアプリケーション開発するにあたって必要な基礎知識を学び、実践編では進行に応じて基礎知識を学びつつ実際に手を動かしながらSymfonyでWebアプリケーションを作る内容となっています。これからSymfonyの導入を考えている方をはじめ、既に導入済みで基礎からしっかり学びたい方は是非参加をご検討ください。 Symfonyはその品質の高さ、高い生産性と拡張性によって母国であるフランスを始め海外で絶大な人気を獲得しています。しかしながら、国内ではS

    8月24日(金) PHPメンターズトレーニングセミナー「Symfony2によるWebアプリケーション開発入門」開催のご案内
  • 効率的なWebアプリケーションの作り方: プロの型を学べる一冊

    プロの現場ではどのようにしてWebアプリケーションが作られているのか?書は著者である小川雄大氏がその疑問に一つの回答を示すものです。 書ではSymfony, PHPUnit、Git, そしてStagehand_TestRunner, git-flowなどの強力なツールが使われていますが、それらはあくまでも脇役にすぎません。書の主役はアプリケーションの主要な課題にプロが取り組むプロセスそのものなのです。読者はコードを書きながら書を読み進めることによって、オブジェクト指向、原則、デザインパターン、アーキテクチャーパターン、ドメイン駆動設計、リファクタリング、テストなどの概要を学習しながら、プロの開発プロセスを体験できるようになっています。 書の読み方Part1 MVC開発の基礎知識1章 MVC開発の概要2章 オブジェクト指向Part2 フレームワークを利用する利点3章 レガシーコード

    効率的なWebアプリケーションの作り方: プロの型を学べる一冊
  • MakeGood 2.0.0: 継続的テストで素早くフィードバックせよ

    先週になりますが、MakeGoodのメジャーアップデートとなるバージョン2.0.0をリリースしました。具体的な変更点はリリースノートをご覧いただくとして、記事では改めてMakeGoodについて簡単に解説したいと思います。 MakeGoodとは? MakeGoodは継続的テスト(Continuous Testing)と呼ばれるプラクティスに基づいたユニットテスト実行環境であり、Eclipse PDT上で動作します。MakeGoodの中心にあるテーマは素早いフィードバックです。それは主にファイル保存時のテストの実行と失敗・エラー・致命的なエラーの自動的な追跡による、テスト実行ワークフローの自動化として表現されています。ここでいうテスト実行ワークフローとは以下のようなものです。 テスト実行ワークフローテストの実行を準備する。テストを実行する。結果の確認する。失敗箇所を特定する。エディタを開く。

    MakeGood 2.0.0: 継続的テストで素早くフィードバックせよ
  • PHPカンファレンス関西2012のLTでモックの使い方について話しました

    2018年1月10日に開催された DCI Tokyo 1 に続き、2018年3月27日に DCI Tokyo 2 が開催されました。今回も James Coplien @jcoplien さんをお招きしてのトークセッションとなりました。会場は 株式会社ヴァル研究所 様に提供していただきました。 セッションは、前回同様 @remore さんと @ganchiku さんによる同時通訳とともに進められました。 今回のテーマはマルチパラダイムデザイン(Multi-Paradigm Design: MPD)の中核を成し、DCI / リーンアーキテクチャ(Lean Architecture)とも深く関係する 共通性/可変性分析 でした。 レポートは @smori1983 が担当させていただきます。 当日の様子は Coplien さんの許可を得て YouTube の DCI Tokyo 公式アカウントに

    PHPカンファレンス関西2012のLTでモックの使い方について話しました
  • Practical Symfony #14: フォームでCollectionTypeを使う 第2回

    Symfony2のフォームでCollectionTypeを使う方法について、第1回ではエンティティクラスと対応付けたFormTypeクラスを作る部分を解説しました。作成したFormTypeは、以下のようにAnswerTypeとAnswerDetailTypeで親子関係を持っています。 今回は、フォームのレンダリングとFormViewについて見てみましょう。 デフォルトのレンダリングフォームにはデフォルトのレンダリングエンジンがあり、FormTypeで定義したウィジェットを階層構造も含めて手軽にレンダリングすることができます。コントローラでテンプレートをレンダリングする時に‘form’ => $form->createView()のようにしてFormViewインスタンスをformという変数名で渡している場合、テンプレート側では{{ form_widget(form) }}とするだけで、このフ

    Practical Symfony #14: フォームでCollectionTypeを使う 第2回