2012年4月7日 関西PHPユーザーズグループ PHP勉強会
![Symfony2による実践的アプリケーション開発](https://cdn-ak-scissors.b.st-hatena.com/image/square/05b425909f1084ce942aea847b13f0185a87167e/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F4f80dc5af1b30b001f00fc36%2Fslide_0.jpg%3F314196)
ところで、Silex\ControllerResolverにはこんなコードがあるんですがこれは何をやってるんでしょうねえ。 protected function doGetArguments(Request $request, $controller, array $parameters) { foreach ($parameters as $param) { if ($param->getClass() && $param->getClass()->isInstance($this->app)) { $request->attributes->set($param->getName(), $this->app); break; } } return parent::doGetArguments($request, $controller, $parameters); }引数の$reque
"Create your own framework... on top of the Symfony2 Components"を読んで、Symfony2とSilexに興味がわいてきたので色々実験してみました。とりあえず"Create your own framework..."でやったCalendarをSilexでどう実装するかを考えてみます。 Silexといえば $app->get('/hello/{name}', function ($name) use ($app) { return 'Hello '.$app->escape($name); }); $app->run();こんな感じのコードというイメージがありますが、中身としてはpart6で出てきたSymfony\Component\HttpKernel\Controller\ControllerResolverの派生クラスであ
Symfonyの機能テストでは最初にWebTestCase::createClient()メソッドでClientオブジェクトを作成し、そのオブジェクトを使ってリクエストを行い、その返り値を確認することによってテストを行います。 テストクラス: <?php ... class ...Test extends WebTestCase { public function test...() { $client = static::createClient(); $client->request('GET', '/path/to/foo'); $this->assertEquals(200, $client->getResponse()->getStatusCode()); $this->assertThat($client->getCrawler()->filter('title')->text
Tip オートロードは、フレームワークでは直接管理されていません。 フレームワークとは独立し、Symfony\Component\ClassLoader\UniversalClassLoader クラスと src/autoload.php ファイルを使ってオートロードが行われます。 オートロードに関する詳細は、オートローダーの章を参照してください。 HttpFoundation コンポーネント¶ 最も最下層に位置するのが、:namespace:`Symfony\\Component\\HttpFoundation` コンポーネントです。 HttpFoundation には、HTTP を扱うのに必要なオブジェクトがあります。 これらは、PHP のネイティブ関数や変数のいくつかをオブジェクト指向で抽象化したものです。 Symfony\Component\HttpFoundation\Reque
The Components implement common features needed to develop websites. They are the foundation of the Symfony full-stack framework, but they can also be used standalone even if you don’t use the framework as they don’t have any mandatory dependencies. (訳)Symfonyコンポーネントは、Webサイトを構築するための共通機能を実装しています。Symfonyフルスタックフレームワークの基盤として利用されていますが、必須の外部依存がないため、Symfonyフレームワークを使わない環境でも、スタンドアローンで利用できます。 The Components
Symfonyにおいてフォームのバリデーションは、通常、フォームにエンティティクラスを関連付け、このエンティティクラスに対するバリデーションとして設定します。バリデーションの設定は、エンティティクラスのフィールド単位で行います。エンティティクラスの各フィールドの定義行のアノテーションとしてバリデーションの設定を記述できます。 ただし実際のプロジェクトでは単一のフィールドのバリデーションだけではなく、複数のフィールドに横断するようなバリデーションルールも必要になるでしょう。こういったバリデーションが必要な場合の方法を紹介します。 True制約を使うCallback制約を使うTrue制約を使う1つ目は、Symfony組み込みのTrue制約を使う方法です。Symfonyの制約(バリデータ)は、エンティティクラスのフィールドだけでなく、名前がgetやisで始まるメソッドに対しても設定できます。これ
新年あけましておめでとうございます。今年もボチボチやっていきます。 本稿ではPHP製のWebスクレイピングライブラリGoutteを紹介します。 Goutte(グット)とは Goutteは必要十分な機能を持ったWebスクレイピングライブラリです。そもそもWebスクレイピングというのは、外部Webページから必要なデータを取ってくるくらいの意味です。つまり、GoutteはWebスクレイピングを簡単に行う道具だと考えればいいでしょう。 具体的には、GoutteはWebクローラとHTMLパーサを組み合わせたようなものです。Cookieやフォームの扱いなどWebブラウザとしての機能は一通り揃っていますし、CSS風の要素指定もできるなど、機能面では他のライブラリと遜色ないように感じます。 さらに僕個人がGoutteに期待している点は、安定性とロングサポートです。Goutteは主要機能をSymfony2お
Create your own framework... on top of the Symfony2 Components (part 1) This article is part of a series of articles that explains how to create a framework with the Symfony Components. It is OBSOLETE but an up-to-date version can be found in the Symfony documentation. Symfony2 is a reusable set of standalone, decoupled, and cohesive PHP components that solve common web development problems. Inste
This domain may be for sale!
この記事はSymfony Advent Calendar 2011の21日目の記事になります。 Advent Calendarとはなんぞや?という方は下記をどうぞ。 http://gihyo.jp/news/info/2011/12/0101 まず始めに、自分はSymfonyをバージョン1系を使ったことがなく、バージョン2からの初心者です しかもSymfony2もまだ触り始めて1ヶ月ちょっとになります。 こんな若輩者の私ですので、突っ込みどころがあるかもしれませんので、もし気になるところがありましたら突っ込んでいただければ幸いです。 Symfony2を使ってみて思ったこと 以前までEthnaを使っていたのですが、以前からSymfonyがいいよ!と色々な方から言われていたので触ってみようと思ったところ既にバージョン2が出ている状態だったので、せっかくなので今更バージョン1系を覚えるのもあれか
Why is Symfony better than just opening up a file and writing flat PHP? If you've never used a PHP framework, aren't familiar with the Model-View-Controller (MVC) philosophy, or just wonder what all the hype is around Symfony, this article is for you. Instead of telling you that Symfony allows you to develop faster and better software than with flat PHP, you'll see for yourself. In this article, y
Symfony Advent Calendar JP 2011 の20日目のエントリーです。今回はSymfony2のRequestクラスについて解説しちゃいます。 RequestクラスはSymfony2のHttpFoundationコンポーネントに含まれており、HTTPリクエストに関する情報(リクエストパラメータやヘッダ、セッションなど)へアクセスするためのAPIを提供します。 Requestオブジェクトの生成 Requestオブジェクトの生成はフロントコントローラ(app.php/app_dev.php)にて行われます。Request::createFromGlobals()メソッドが呼び出されると、内部でスーパーグローバル変数を元にRequestオブジェクトが生成されます。Requestを独自クラスにしたい場合はここを直接差し替えます。 <?php // ... $kernel->ha
Symfony Advent Calendar JP 2011 : ATND 9日目の記事です。 Symfony2.0.7が昨日リリースされましたね。今回のアップデートで個人的に熱かったのはSymfony2にバンドルされるTwigのバージョンがv1.1.2からv1.4.0へアップグレードされた所です。Twigは便利な機能もいっぱいありますのでこの機会に紹介したいと思います。 for お馴染みのループに使う構文です。一般的な使い方はこうです。 <ul> {% for item in article %} <li>{{ item.title }}</li> {% endfor %} </ul> もちろん配列の添字にもアクセスできます。 <ul> {% for key, item in article %} <li>{{ key }}:{{ item.title }}</li> {% endfo
PHPFog + Symfony2 でステージング環境を作る方法:Symfony Advent Calender 2011 JP - 13日目 - こんにちは!「Symfony Advent Calendar JP 2011」 13日目です。 昨日の @77webさんからバトンタッチで、今日は「PHPFog + Symfony2 でステージング環境を作る方法」をご紹介します。 PHPFog と Symfony2 って何? さて、今日のブログのテーマですが、タイトル通り PHPFog に Symfony2 が動作する環境を作る手順をめっちゃ丁寧に書いていきたいと思います。 みんな大好き Symfony については説明するまでもありません、PHP5向けのウェブアプリケーションフレームワークです。 ・公式:High Performance PHP Framework for Web Develo
どうもこんにちは。小川です。日付変わっちゃいましたが、Symfony2 Advent Calendar JP 2011の5日目です。今回はFormコンポーネントを使いこなす上でぜひ知っておきたいポイントを紹介します。 今回紹介するのは次の3つです。 任意のプロパティをフィールドにマッピングする どのプロパティにもマッピングしないフィールドを定義する どのプロパティにもマッピングしないフィールドをバリデーションする 任意のプロパティをフィールドにマッピングする Formコンポーネントを通常に使うと、オブジェクトの構造とフォームの構造を合わせるようにすると思います。たとえば次のクラスがあるとします。 <?php class Foo { public $prop1; public $bar; } class Bar { public $prop2; } $foo = new Foo(); $fo
Last week, I held a keynote presentation about Symfony2 at the Symfony Day conference in Cologne. Many people asked me for the slides, but they were quite empty and not that useful. This blog post is more or less what I've said during the first part of the talk. What is Symfony2?# When I ask people what Symfony2 is for them, most of them say something along the lines of: Symfony2 is a full-stack w
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く