ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

DIとSpringについて

2010-12-21 20:06:57 | そのほか

・まーちんふらいあー(M. Fowler)が、IoC(Inversion of Control:制御の反転)を整理したところからはじまり

・オブジェクトの依存性をあとから注入する
  →アスペクト指向のAroundでも実現できる

・実現方法:DIコンテナ




■DIとは?

  AがB(抽象クラス)を使っていて、Bのインスタンスは、B1,B2であるというとき

  Aがインスタンスかされるには、B1,B2のインスタンスを実装しないといけない
     →AがB1,B2を知っている(依存性がある)

  これでは、AとB1、B2の依存性が高くなる

  そこで、

    Aは、Bを使う
    Aは、DIコンテナさんに、インスタンス化頼む
    DIが、B1か、B2かを決めて、インスタンス→設定ファイルに書いてある:局所化した

  とする、これがDI
  こうすると、アプリケーション立ち上げ時に、何を使うか決定できる。
  DIコンテナの上にPOJOを置いておく




■DIの種類:なにをインジェクションするの

・インター・フェースインジェクション

・セッター・インジェクション

・コンストラクタ・インジェクション




■DIとAOP

 AOPのほうが、実現できることが広い
 AOPのポイントカットに特化したといえる。
 DIはインスタンス生成に特化=目的にあっていれば使いやすい




■Springフレームワーク
  ・DIコンテナ
  ・MVCフレームワーク
  ・JDBC抽象化フレームワーク
  ・AOPフレームワーク
  ・Webインテグレーション
  ・ORMインテグレーション

 以下の話は、Tomcat+Springをやる
 (ロギングは、/WEB-INFにlog4j.xmlを置く事で可能)

Springは、プレゼンテーション層 ,ビジネス、データアクセスすべて対応してる。
  →もちろん、プレゼン層にStruts、データアクセスにHibernateを入れてもOK




■Spring DIコンテナ
・Bean定義ファイル(デフォルトapplicationContext.xml)に、JavaBeansの構成
   →beans
     bean id=オブジェクト名 class=パッケージ.クラス
       property name=変数名
          value 値
         →setter,getterがある→プロパティがある
         →propertyのref beanで、オブジェクトをプロパティに代入可能

・DIコンテナ
  Beanファクトリ
  (Applicationコンテキスト:Beanファクトリの上位)




■Eclipseで・・・
・プロジェクトを作成する
・Sample.javaっていうかたちで、メインのクラスをつくったとする。

・そこに、こんなかんじで、サンプルをつくるお(sampleパッケージにあるとする)。
package sample;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;


public class Sample {
	public static void main(String[] args) {
		Resource resource = new ClassPathResource("/sample/sample.xml"); 
		BeanFactory beanFactory = new XmlBeanFactory(resource);
		MyClass taro = (MyClass) beanFactory.getBean("obj1");
	}
}


・MyClassクラスをつくるお
  →getter,setterがあればいい

・Bean定義ファイル(ここでは/sample/sample.xml)をつくるお
  その中には、beanでid=obj1,classにMyClassが定義されているはずお

・プロパティを開いて、Spring→BeansSupportで、Bean定義ファイル(xml)を指定してから

・Javaアプリケーションとして実行する




■こうすると・・・

Bean定義ファイル(xml)をかえるだけで、
→プロパティを開いて、Spring→BeansSupportで、Bean定義ファイル(xml)を指定をかえるだけで、
実行するものが変えられる。




■EclipseのTomくんにかんして
・ウィンドウの設定、Tomくんのバージョンとか、ホームを設定すること。
・あと、Tomcatで、対象プロジェクトを右ボタンクリックしたあとで、これやってね





■AOPに比べた欠点
 同じ値を返す、複数のクラスとか(モックでNullを返すとき)を作る場合、
 DIだと、みんな作んないといけない
 (アスペクトなら、クラス名、メソッド名に*を使って、いっぱつでいける)



こんかいつかった、すぷりんぐ


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

astah*を使って、ICONIX風一気通貫システム開発 その10:DAO作成

2010-12-21 18:02:30 | そのほか

 「astah*を使って、開発の要求仕様から、プログラム作成までを、トレーサビリティを保って、どのように開発するかを書いてみる」という、このシリーズ、以下の手順で説明する予定ですが、

(1)作るべきもののユースケースを書く
(2)ユースケースシナリオを書く
(3)ロバストネス分析
(4)バウンダリ(画面)、エンティティ(テーブル等)の属性を埋めていく
(5)バウンダリの項目を元に、画面構成を考える。
(6)(必要があれば)エンティティを正規化して、ER図にする
(7)フレームワークを決定する
(8)画面クラスをソースコードに書き直す
(9)エンティティをDBのテーブルと、DAOに書き直す
(10)コントローラーを書き直す

前回、(8)をやったので、今回は、「(9)エンティティをDBのテーブルと、DAOに書き直す」についてです。




■方法

 といっても、エンティティのクラス図は、DB構造そのままなので、別に対してやることはなくて、

1.DB構造を元に、create tableする

2.そのテーブルのアクセスロジック部分を作成する

3.場合によっては、元となるデータをセットしたり、Viewを作ったりと、
  アクセスするための作業をする

ことになります。とくに、2は、手作業でやるのではなくって、
HibernateとかiBATISとか、アクセスするためのDAO,O/Rマッピングがありますので、
それらを使って行います。

クラス図が出来ているということは、型と項目名は書いてあるので、それをもとに作成します。

それらのツールを使わない場合でも、たいてい、アクセス部分は、なんか、自分たちでフレームワークを作って、それにしたがって、DAOを作成するのが普通でしょう。




■位置づけ

 詳細設計&コーディングの、DB作成部分になると思います。




あとのこすは、1個



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

QMLを、はじめたい! その5 画面切り替え

2010-12-21 14:13:20 | そのほか

 シリーズ「QMLを、はじめたい!」。前回は、画面の部品について取り上げました。ということで、1画面については、これでOK。

 あとは、複数画面の切り替えになります。今回は、その話。




■概要

 画面切り替えは、stateを使って出来ます。

1.画面全体にstateを用意しておき
2.画面を切り替えたいときに、1のstateに各画面のstateをセット
3.全体のstates:で、切り替わったときに出す画面の対応を記述

するとできます。




■ソースコード

こんなかんじ。
import Qt 4.7

Rectangle {
    id:rectangle1
    width: 200
    height: 200
    property int i: 0
    state:"state1"

    Item {
        id:text1
        visible:false
        anchors.fill: parent
        Text {
            x: 16
            y: 23
            text: "Hello World"
        }
        Image {
                id: image1
                x: 35
                y: 35
                source: "http://doc.qt.nokia.com/4.7/images/declarative-qtlogo.png"
        }
        MouseArea {
                        property int j: 0
                        id: mouse_area1
                        anchors.fill: parent
                        onClicked:{
                            if (rectangle1.state == "state1")
                               rectangle1.state = "state2"
                            else
                               rectangle1.state = "state1"
                            console.log(rectangle1.state)
                    }
         }
    }

    Text {
        id:text2
        visible:false
        x: 66
        y: 93
        text: "another world"
        MouseArea {
                    property int j: 0
                    id: mouse_area2
                    anchors.fill: parent
                    onClicked:{
                        if (rectangle1.state == "state2")
                           rectangle1.state = "state3"
                        else
                           rectangle1.state = "state2"
                        console.log(rectangle1.state)
                    }
        }
    }

    Text {
        id:text3
        visible:false
        x: 66
        y: 93
        text: "new world"
        MouseArea {
                    property int j: 0
                    id: mouse_area3
                    anchors.fill: parent
                    onClicked:{
                        if (rectangle1.state == "state3")
                           rectangle1.state = "state1"
                        else
                           rectangle1.state = "state3"
                        console.log(rectangle1.state)
                    }
        }
    }

    states: [
        State {
            name: "state1"
            PropertyChanges {
                target: text1
                visible:true
            }
        },
        State{
            name: "state2"
            PropertyChanges {
                target: text2
                visible:true
            }
        },
        State{
            name: "state3"
            PropertyChanges {
                target: text3
                visible:true
            }
        }
    ]
}





■せつめい

3つ画面があって、

・第一画面(ID text1 State state1)は
   QTのロゴと、Hello World

・第二画面(ID text2 State state2)は
   another World

・第三画面(ID text3 State state3)は
   new World

が表示される。これを、順次切り替えていく




■方法

1.画面全体にstateを用意しておき


  Rectangleに

    state:"state1"
  を用意("state1"は初期値。これがないとはじめに全部でてくることも!

2.画面を切り替えたいときに、1のstateに各画面のstateをセット

MouseAreaのonClicked部分
if (rectangle1.state == "state1")
	rectangle1.state = "state2"
else
	rectangle1.state = "state1"


のように、「自分のステータスだったら、次のステータスセット、
そうでなければ、自分のステータスセット」と書いておく。


3.全体のstates:で、切り替わったときに出す画面の対応を記述


   states: [
        State {
            name: "state1"
            PropertyChanges {
                target: text1
                visible:true
            }
        },
      :
(以下省略)



のように、statusの中に、各ステータスを書き、
その中で、nameとPropertyChangesを書く。
ターゲットは自分の画面名。




■注意!!

・states: のあと、[であって、{ではない。

・statusの区切りは,であって、:や;ではない。




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

12月20日(月)のつぶやき

2010-12-21 02:28:16 | Twitter
00:14 from web
ここの記事だと、公認会計士試験合格者、希望最低年収300万円が3割だそうだ http://headlines.yahoo.co.jp/hl?a=20101219-00000501-san-soci
by xmldtp on Twitter

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

i*とKAOSの違い

2010-12-20 13:30:59 | そのほか

書いたっけ、これ?ま、いいや・・・

i*とKAOSの違いを考えると、

外見的には、

KAOSは、ゴールがひし形で、そいつを詳細化していき
 ツリー上に広がっていく感じだけど、

i*は、ソフトゴールとゴールを図形的に分けて、そこにタスクとか書いて、
 その間に線を引いて、華やかにやっている

なかんじの違いが見えてくると思う。
しかし、これが、利用上では、大きな違いがあると思う。




 まず、あるタスクがあるとき、
  ・このタスクに関する(同じレベルの)タスクをあげて、入出力などの関係を見ていく、
    横の広がりを見る方法
 と、
  ・あるタスクは何から構成され、さらにそのタスクは何から構成され・・・
   と、詳細化していく、「縦の広がり」を見る方法

 がある。一般に。

 もし、横の広がりと、縦の広がりを、同時に展開すると、状態爆発してしまう。
 そこで、同じレベルのものを比較して考える、横の広がりを見るものと、
 詳細化していく縦の広がりを見る図にわかれる。




 KAOSは、詳細化していき、縦の関係を見るのに適している。
 これを、関連する情報は何か?と考えて、横の方向に見ていくと、「たいへんなことに!」なってしまう。

 一方、i*は、いろんな線が交差するところからみても、明らかなように、横の方向に見ていく図であり、これを、詳細化していくと、「たいへんなことに!」なってしまう。

 よって、さまざまな案を「ソフトゴール」により、比較、検討するときには、i*が適していて、逆に、だいたい状態が決まっていて、ゴールまで見通しがあるようなときは、KAOSを使って、詳細化したほうが、きれいにまとまる。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

12月19日(日)のつぶやき

2010-12-20 02:14:24 | Twitter
13:36 from web
検証は2つの方向性があると思う。一貫性と詳細化
by xmldtp on Twitter

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

FF14、バージョンアップすると→動かないコンピューター

2010-12-19 14:27:18 | トピックス

ここの痛いニュース
FF14のバージョンアップでパソコンクラッシュ続出
http://blog.livedoor.jp/dqnplus/archives/1578051.html


FF14って、
和田社長がクソゲーであることを認め
   ↓
無料期間を延期して
   ↓
「一日一回、ゲーム内で『私はFF14を続けるよ』と言いましょう!」キャンペーンしたけど・・・
   ↓
結局新開発チームになって、
   ↓
その結果バージョンアップでパソコンクラッシュ続出

日経コンピューターさーん!「動かないコンピューター」の取材ネタ、ありますよおー!!


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

12月17日(金)のつぶやき

2010-12-18 02:18:15 | Twitter
02:44 from web
「AKBはリナックスみたいにしたい」そうな http://news.nicovideo.jp/watch/nw15320
09:31 from web
モノでストーリーを作るのが理系、ヒトでバラエティを作るのが文系、根性でドラマを作るのが体育会系。どれも、感動を与えないと傑作は生まれない
09:31 from web
とすると、感動を与えれば、エロ漫画でも傑作はありえるわけで、そー考えると…「火の鳥は近親相姦があるけど規制?」 猪瀬副知事「されません」「傑作であれば、条例なんてないも同然 http://blog.livedoor.jp/dqnplus/archives/1577320.html
by xmldtp on Twitter

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

QMLを、はじめたい! その4 各種部品

2010-12-17 14:02:43 | そのほか

 シリーズ「QMLを、はじめたい!」。前回は、変数と(イベント)処理について書きました。

 変数は、
property 型 変数名: 初期値
(property int i: 0)

のような形で自分で定義できると書きました。

 ちなみに、型は、QMLのベーシックタイプなら、指定できると思う(やってみてはいない)。それと、Propertyは、xとかyとか、もともとあるものもあるので注意(これとバッティングした場合、どうなるのかも、試してはいない)。

 イベント処理は、 MouseAreaのプロパティonClicked:に関数を書いて、対応できることを書きました。ここでは、代入だけでなく、For文もつかえます。その例を示しました。この中の文法はJavascriptとだいたい同じみたいです(ただ、変数は、前に宣言してないと使えない?)。まだ詳しく調べてないので、確かなことはいえませんが・・・

 で、今日は、文法はこれでOKなので、画面の部品について、書きたいと思います。
 今日の内容までで、1画面の表示は出来るようになると思います。




■画面部品

 画面の部品については、

Qt Quick 入門 第4回: 画像やマウスを使おう
http://qt-labs.jp/2010/09/28/qml-image-and-mousearea.html

の中ほどに「QML の描画要素」として、あります。

 QML Elementsの一部であり、上記サイトから、引用してくると、以下のものがあるみたいです。
(以下斜体は上記サイトより引用)



AnimatedImage: アニメーションGIFのようなアニメーションする画像を表示します
BorderImage: 画像で作成された枠を表示します
Image: 画像を表示します
Rectangle: 矩形を表示します
Text: テキストを表示します
TextEdit: 複数行のテキストの入力/編集が行えます
TextInput: 一行のテキストの入力/編集が行えます


Keys: キー入力を処理します
KeyNavigation: カーソルキーによるフォーカス移動をサポートします
MouseArea: マウス関係の処理を行います



ImageとText、MouseAreaを合わせてボタンを作ります。

あと、リストを作るには、ListViewというのがあり、
このListViewのデータをつくるために、ListModelというのがあります。

詳しい作り方は、別のときに書きます
(もっとあとで)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

You Tube、動画製作に参入 - おお、広告とかも作れるね!

2010-12-17 09:55:13 | トピックス

ここのニュース
ユーチューブ、動画製作に参入=米紙
http://headlines.yahoo.co.jp/hl?a=20101216-00000035-jij-int

によると(以下斜体は上記サイトより引用)、


米紙ニューヨーク・タイムズ(電子版)は15日、関係筋の話として、米グーグル傘下の動画サイト「ユーチューブ」が、インターネット向け動画製作会社ネクスト・ニュー・ネットワークス(本社ニューヨーク)を買収する方向で交渉に入ったと報じた。
 ユーチューブで見ることができる動画は現在、一般の人や企業から投稿されたものが中心。買収が実現すれば、動画コンテンツ製作事業に参入することになる。


YouTubeの場合、たしかに、自分たちのところで、動画を流すってコトも考えられるけど、
自分たちが、広告を作成して、投稿動画の中に折込み、広告料を頂戴するという方法も
考えられるね!

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

12月16日(木)のつぶやき

2010-12-17 02:16:55 | Twitter
09:34 from web
次世代通信は、「感情の転送」と「感性のネットワーク」だよね!
11:35 from web
さかなクン、絶滅したと思われていた幻の魚「クニマス」発見 http://headlines.yahoo.co.jp/videonews/fnn?a=20101215-00000721-fnn-soci
by xmldtp on Twitter

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

セキュリティのモデル検査(アクセス制御編)

2010-12-16 20:05:19 | そのほか

■モデル検査→セキュリティにも応用できる
  ・通信プロトコル
    →SPINだけでなく、CSPやSMVも
  ・アクセス制御★(以下、これを書く)
  ・デジタル署名




■アクセス制御
  ・どの情報にだれがアクセスできるか、できないか
  ・ソフトがアクセス制御を守っているか?確認必要
     人手では手間増大、抜けもある
       →網羅的、機械的支援:モデル検査





■アクセス制御をモデル検査で、どうやるのか?

 Spinを例に考える
・セキュリティポリシーをLTL式で記述
・システムをPromelaで記述
・2つをあわせてSPINで検証



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

QMLを、はじめたい! その3 QMLの変数とイベント処理

2010-12-16 16:41:31 | そのほか

シリーズ「QMLを、はじめたい!」。前回は、QMLでHelloWorldを出しました。

 今回は、QMLにおける変数宣言と、イベント処理についてです。

 具体的には、前回作成した、HelloWorldが表示される以下のソース
import Qt 4.7

Rectangle {
    width: 200
    height: 200
    Text {
        x: 66
        y: 93
        text: "Hello World"
    }

}

を修正して、HelloWorldのところを、クリックすると、
コンソールに、クリックするたびに1上がった数を3回ずつ表示する
という、意味のないプログラムを作ってみたいと思います。




■編集方法

 前回作ったものを出します。

 Qt Creatorを立ち下げ、前回作ったプロジェクトを読み込むため、

「ファイル」→「ファイルプロジェクトを開く」

を選択します。


ファイルダイアログが出ますので、
前回作ったプロジェクト(.qmlprojectのもの)をクリックします。

そうすると、「プロジェクト」のところに、プロジェクト名のフォルダの下に、
プロジェクト名.qmlprojectとプロジェクト名.qmlがでてるはず。
そしたら、.qmlのほうを、ダブルクリックします

そうすると、上記のHelloWorldのソースが出るはず。




■変更ソース

このソースを、以下のように変更します。
import Qt 4.7

Rectangle {
    width: 200
    height: 200
    property int i: 0

    Text {
        x: 66
        y: 93
        text: "Hello World"
        MouseArea {
                    property int j: 0
                    id: mouse_area1
                    anchors.fill: parent
                    onClicked:{
                        i ++
                        for(j=0;j < 3 ; j ++)
                        {
                             console.log(i)
                        }
                    }
        }
    }
}

(<は、本当は半角)

そして、「ビルド」→「実行」を選択すると、プログラムが起動する。
HelloWorldと出てきたところを、クリックすると、
コンソール(下のQMLビューア)に
1
1
1
2
2
2
のように、3回ずつ、数字が出るはず。




■変数について

 で、ここから説明。
 自分で変数を作りたい場合は、

   property 型 変数名: 初期値

 の形で、propertyとして、変数を宣言する(x,yみたいにもともと定義されているものとかち合わないように)

例(6行目):

property int i: 0




■マウスイベント処理について

 MouseAreaというエリアを作成する必要がある。その中で、カーソルがクリックされると、
 onClicked:が定義されていると、処理を行う。

 onClicked:のあと、{}でくくって、ここで処理が書ける。変数は前もってプロパティで宣言しておく。

 今回の例の、「 console.log(i)」は、コンソールに表示させるもの




今回はここまで。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PHPのZend FrameworkをEclipseで使う その2:Eclipseからzend

2010-12-16 11:20:54 | PHP

PHPのZend FrameworkをEclipseで使うことを考える。
その手順。2回に分けて説明する予定の2回目。

前回は、Zendフレームワークのインストールまでを書いたので、今回は、その先、

  ・Eclipseをインストールして、
  ・Zendで作ったサンプルソースを、配備して
  ・Eclipseから配備したところを見るようにする。

 をやります。今回は一からつくらず、サンプルソースを修正します。
 では、以下からやり方詳細。




■Eclipseをインストール
All in one Eclipseのページ
Pleiades - Eclipse プラグイン日本語化プラグイン
http://mergedoc.sourceforge.jp/


にいって、最新版の「Ultimate」または「PHP」版をダウンロードしてくる。

あとは、それを、解凍して、起動します(いや、まだ起動しなくていいけど)。
起動するのは、解凍してでてきたフォルダの中にあるeclipseの下の、「eclipse.exe」です。




■Zendで作ったサンプルソースを、修正・配備

 以下の3手順
(1)サンプルダウンロード
(2)構成変更&修正
(3)確認

を行います。

●(1)サンプルデータダウンロード
 今回は、
Zend Framework入門(2):Hello World!アプリケーションの作成
http://codezine.jp/article/detail/1961/

のサンプルファイルを使います。

ここ http://codezine.jp/article/download/1112
から、サンプルがダウンロードできますので、ダウンロード&解凍します。

●(2)構成変更&修正
今回は、Eclipseで扱いやすいように、構成を変えます。
しかし、構成を変えると、セキュリティ上、脆弱になります。
脆弱にしたくなければ、サンプルコードのままにしてください


 今回は、扱いやすくするために、構成を

HelloZendの下に、ソースを配備し、http://localhost/HelloZend
でアクセスできるようにします。

(2-1)まず、Apacheのホームの下のhtdocs
(たとえば、C:\Program Files\Apache Software Foundation\Apache2.2\htdocs)
の下に、HelloZendというフォルダを作ります
(もちろん、好きなところにフォルダを作って、(2-2)以降の作業を行い、
 その後、フォルダごと、htdocsの下においてもOK)

(2-2)サンプルを解凍すると、htdocs、zendappsというフォルダがあると思います。
 その、htdocsの下のindex.phpファイル(sample\htdocs\index.php)を
 今作った、HelloZendフォルダの下にコピーします。

(2-3)サンプルの下のzendapps(sample\zendapps)を
 今作った、HelloZendフォルダの下にコピーします。

(2-4)HelloZendフォルダの下に、.htaccessというファイルを作成します。
 中身はこんな感じ

php_flag magic_quotes_gpc off

RewriteEngine on
RewriteBase /HelloZend/
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php


(2-5)構成をかえたため、一部書き換えます。
 index.phpのファイル中、赤字の部分を修正して、以下のようにします。
<?php
require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::run('zendapps/controllers');


ここまでの作業をやると、こんな構成になっているはず


●(3)確認
 
http://localhost/HelloZend/

をブラウザでアクセスします。
「こんにちは!
 お名前をどうぞ。」
とでてきて、Goをクリックすると、
「こんにちは、 your nameさん!」
と出てくればOK!




■Eclipseから配備したところを見る

 今、配備したサンプルのところを、Eclipseから編集できるように、
 Eclipseのプロジェクトを作成&設定します。

(1)Eclipseを立ち上げます。

(2)Eclipseのメニューから
  「ファイル」→「新規」→「その他」
  を選んでください。
  (「ファイル」→「新規」で、「PHPプロジェクト」が見れるなら、それを選んでも良い。
   その場合、(4)へ)

(3)ダイアログが出てきます。「PHP」→「PHPプロジェクト」を選んで「次へ」

(4)プロジェクトのダイアログで
  「プロジェクト名」は好きに入れてください。(今回はHelloZendにしてます)
  その下の「内容」は「外部ソースからプロジェクトを作成」にチェックしなおします。
  そしたら、「参照」ボタンをクリックし、さっき配備したHelloZendのパス
  (たとえば、
    C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\HelloZend
   などになっていると思う)
  を設定します。そしたら、完了。

(5)あたらしく、プロジェクトが出来て、そこから、ソースが見れるはず。

(6)実行するには、Eclipseのメニュー「実行」→「実行構成」を選択し、
   実行構成ダイアログを出したら、PHP Webページを選択して、
   左上のドキュメントに+印のものをクリックする


(7)新規構成っていうのができるので、下のように、名前を適当に入れて、
   ファイルを、HelloZendのindex.phpにして(参照から選べる)
   「適用」をクリック、その後「実行」ボタンをクリック。

(8)Eclipseから
「こんにちは!
 お名前をどうぞ。」
とでてきて、Goをクリックすると、
「こんにちは、 your nameさん!」
と出てくればOK!




こんなかんじ。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PHPのZend FrameworkをEclipseで使う その1:zendインストール

2010-12-15 17:17:41 | PHP

PHPのZend FrameworkをEclipseで使うことを考える。
その手順。2回に分けて説明する予定。
今日は、Zendフレームワークのインストールまで。

(1)Apacheのインストール

(2)PHPのインストール

(3)Zendをダウンロード
ここ   
Latest Release of ZF
http://framework.zend.com/download/current/

の「Zend Framework 1.11.1 Full」のZIPをダウンロードした。
(ちょっと下のほうに、小さくある)

(4)ZIPファイルを解凍する。

(5)それを、どこでもいいんだけど、どっかにおく。
 (解凍したZendFramework-1.11.1というフォルダ名をZendFrameworkにして、「C:Program Files」の下に置いた)

(6)PHPのphp.iniの
; Windows: "path1;path2"
include_path = ".;C:Program FilesZendFrameworklibrary"
と、include_pathを設定する(設定先:(5)のフォルダの下のlibrary)

(7)Apacheのconfフォルダの下にある、httpd.confに対して、

LoadModule rewrite_module modules/mod_rewrite.so

のコメントをはずす。さらに、

<Directory "C:Program FilesApache Software FoundationApache2.2htdocs">
AllowOverride All
</Directory>


(上記< > は、本当は半角)を追加


(8)Apacheのhtdocsフォルダの下に、zendtest.phpというファイルを作り、


<?php
require_once 'Zend/Version.php';
echo Zend_Version::VERSION;

(上記< > は、本当は半角)を追加
と書いて、保存する。

(9)ブラウザで、http://localhost/zendtest.php をアクセスする

1.11.1

のように、バージョン名が表示されればOK!



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする