フレームワーク

symfony 1.0 book 第2章 まとめ(3)


symfony1


PHPの代表的なフレームワークの1つであるsymfonyについてまとめます。元ネタはsymfonybook-ja1.0です。

覚えておくべき基本的な手法

symfonyでよく使われるいくつかの手法があります。例えば、パラメーターホルダー、定数、そしてクラスのオートロードなどです。

パラメーターホルダー

symfonyの多くのクラスはパラメーターホルダー(parameter holder)を実装しています。これはゲッターとセッターメソッドを持つプロパティ(属性、メンバ変数)をカプセル化するのに役立ちます。たとえば、sfResponseクラスはgetParameterHolder()メソッドを呼び出すとパラメーターホルダーオブジェクトを取得することができます。このパラメータホルダーを使用することで各プロパティにアクセスできます。

続きを読む

シェアして頂けると嬉しいです

symfony 1.0 book 第2章 まとめ(2)


symfony1


PHPの代表的なフレームワークの1つであるsymfonyについてまとめます。元ネタはsymfonybook-ja1.0です。

symfonyプロジェクトのツリー構造

一般的なWebプロジェクトは以下のような内容で構成されます。

・データベースのファイル。MySQL、PostgreSQLなど
・静的なファイル(HTML、画像、JavaScriptファイル、スタイルシートなど)
・サイトのユーザーと管理者によってアップロードされたファイル
・PHPのクラスとライブラリ
・外部ライブラリ(サードパーティのスクリプト)
・バッチファイル(コマンドラインもしくはcron tableで起動するスクリプト)
・ログファイル(アプリケーションかつ/もしくはサーバーによって書き込まれるトレース)
・設定ファイル
続きを読む

シェアして頂けると嬉しいです

symfony 1.0 book 第2章 まとめ(1)


symfony1


PHPの代表的なフレームワークの1つであるsymfonyについてまとめます。元ネタはsymfonybook-ja1.0です。

MVCアーキテクチャ

symfonyは3つのレベルから構成される、MVCアーキテクチャ(Model-View-Controller architecture)として知られる古典的なWebのデザインパターンに基づいています。

・モデル(model)はアプリケーションが影響を与える情報、ビジネスロジックが実装されます。
・ビュー(view)はモデルの内容をレンダリングし、Webページとして表示する役割を持ちます。
・コントローラー(controller)はユーザーのアクション(入力やクリックなど)に対応する、モデルのデータをビューに渡すなどの役割があります。
続きを読む

シェアして頂けると嬉しいです

symfony 1.0 book 第1章 まとめ


symfony1


PHPの代表的なフレームワークの1つであるsymfonyについてまとめます。元ネタはsymfonybook-ja1.0です。

symfonyとは

・symfonyは、Webアプリケーションの開発を最適化するために設計されたPHPフレームワークです。
・初心者にも使いやすいようにsymfonyはWebアプリケーションのビジネスロジック、サーバーのロジック、そしてプレゼンテーションのビューを分離するように設計されています。(いわゆるMVCの概念)
・symfonyは複雑なWebアプリケーションの開発期間を短くすることを目的とした多くのツールとクラスを含んでいます。
・symfonyは全てPHP5で書かれています。
・symfonyは多様なプロジェクトで徹底的にテストされ、高い需要のあるECサイトでも実際に利用されています。
・symfonyはMySQL、PostgreSQL、Oracle、Microsoft SQL Serverを含む、利用可能なほとんどのデータベースエンジンと互換性があります。
・symfonyはUnix系やWindowsプラットフォーム上で動作します。多くのプラットフォームでのインストールと設定作業が簡単であり、標準的なUnix系OSとWindowsプラットフォームでの動作が保証されています。

続きを読む

シェアして頂けると嬉しいです

PHPにおけるMVCフレームワークの考え方


1083327_15207547


MVCについて

PHPでWebアプリケーションを開発する場合、よくMVCフレームワークが使われます。ではMVCフレームワーク使った場合、M(モデル)、V(ビュー)、C(コントローラー)には具体的にどのような処理を書けばいいのかについて書いてみたいと思います。

Webアプリには必ずデータが存在します。データが無ければ画面に表示するものがないのでアプリとして成立しません。ここでいうデータは具体的には、「データベース上にあるデータ」や「CSV形式・TSV形式のファイル上のデータ」「XML形式のファイル上のデータ」などのことです。

MVCフレームワークはRuby on Railsが発祥のようで、そのRuby on Railsでは、M(モデル)はデータベースのテーブルをそのままオブジェクトとして扱います。テーブルAにはモデルAオブジェクトが対応し、テーブルBにはモデルBオブジェクトが対応するというカンジです。

まず、メインの処理となるビジネスロジックはモデルに書きます。たまにコントローラーに書く方もいますが、基本的にはモデルが担当するべきでしょう。具体的には、モデルにメイン処理のメソッドを実装して、コントローラーではこのモデルのメソッドをコールするような形式が良いかと。そしてモデルのメソッドから得られたデータをビューに渡して表示するといった流れになります。

なんとなく「これはモデルの処理ではないなー」みたいな処理をコントローラーにどんどん書いてしまうとコントローラーが複雑化してくるパターンが多いのでそうならないようにしたいものです。

以下に、いくつか具体的な例をあげてみます。

続きを読む

シェアして頂けると嬉しいです