2011年3月1日火曜日

3/1覚書

1時間目は
クラスの概念再び。
クラス図。これは概念だからね。
親から子へ継承できるよ。

☆オブジェクト指向
オブジェクト指向の考え方で割りといい感じの説明
ここだけ読んでもおk。

飛び飛び過ぎてつらい・・・・・・。

2時間目
smarty入門っぽいサイト
早わかりsmarty
いずれは見ようウノウラボ

PHP-users メーリングリスト
不明点もちゃんと書けば教えてくれるよ。質問内容は質問者の文章を参考にどぞ。

いつかは行こうPHP勉強会

さてSmarty設置とバーチャルホスト設定。
eclipce、XAMPP起動して・・・・・・sample_templateって名前でプロジェクト作成。

ダウンロードしたLatest Stable Releaseの
Smarty 3.0.7 (.tar.gz) (.zip) February 11th, 2011のzipを保存して解凍。
そこからlibsフォルダをC:\pleiades\xampp\htdocs\smarty_sample(実際のフォルダね)へコピー。

C:\pleiades\xampp\apache\conf\extra\httpd-vhosts.confをエディタで開く。
そんで一番下の所をコピーしてその下に貼り付けて、以下に改変。
一緒に##NameVirtualHost *:80ってあるから、##取るよ!

## Smartyサンプル##
<VirtualHost *:80>
    DocumentRoot "c:/pleiades/xampp/htdocs/smarty_sample"
    ServerName smarty_sample
    Directoryindex index.php index.html
    
    <Directory "c:/pleiades/xampp/htdocs/smarty_sample">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>
保存したらXAMPPでApache再起動。


3時間目
C:\WINDOWS\system32\drivers\etc\hostsをエディタで開き、最下部に下記追加。
## Smarty サンプル
127.0.0.1 smarty_sample
http://smarty_sample/で開くかチェック。
現時点ではIndex of /ってページが出れば成功。
意味を知ろう
127.0.0.1 【ループバックアドレス】
127.0.0.1 自分のlocalhostのこと。
hostsファイル 【hosts file】
localhostのIPアドレスやホスト名が記述されたシステムファイル。
名前解決 【name resolution】
DNSのこと。

今までのBBSとか住所録もバーチャルホストに組み込んでみよう。
ていうかこれやらないと今までの課題が見れなくなる;
<VirtualHost *:80>
    DocumentRoot "c:/pleiades/xampp/htdocs/address_book"
    ServerName address_book

4時間目

テンプレートからHTMLを呼び出すよ。
まずは以下のフォルダを作るよー。
templatesフォルダの名称は好きにつけていいけど、慣例でコレが多い。
たまにtplって省略できる。
これらのフォルダは攻撃対象になりうるため、本当は公開領域に置かない。
置くならhtdocs以上のフォルダに置く。
* templates
* templates_c
* config
* cache

んでtemlpatesフォルダにhello.tplファイルを作成。
smaty_sample直下にhello.phpを作成。
内容は以下。
//sumarty.classを読み込み
require('./libs/Smarty.class.php');

//smartyクラスのインスタンスを作成
$smarty = new Smarty;

//テンプレートファイルの置き場所を指定
$smarty ->template_dir="./templetes";

//変換したテンプレートファイルが置かれる場所
//コンパイル・ディレクトリ
//実際に実行されるphpファイル
$smarty ->compile_dir="./templetes_c";

//assignで変数名と値をセット
$smarty ->assign("name","world");
//displayでブラウザに出力
$smarty ->display("hello.tpl");


そしたらhttp://smarty_sample/hello.phpを開くと、
Hello,world! って文字だけ出るよ。

サーバーサイドスクリプト/クライアントサイドスクリプト
呼んで字のごとく。

コンパイルって何?
ヒトが書いたプログラムを機械がわかる言葉01 00 10・・・・・・などに翻訳してあげること。

5時間目
tpl内に{* *}でコメントがかける。ソースにも出ない。

配列でやてみよう。
array.php
//sumarty.classを読み込み
require('./libs/Smarty.class.php');

//smartyクラスのインスタンスを作成
$smarty = new Smarty;

//テンプレートファイルの置き場所を指定
$smarty ->template_dir="./templetes";

//変換したテンプレートファイルが置かれる場所
//コンパイル・ディレクトリ
//実際に実行されるphpファイル
$smarty ->compile_dir="./templetes_c";

$smarty ->assign("arch",
    array(
    "PHP",
    "ASP.NET",
     array("JSP","サーブレット")
     )
   );
$smarty -> display("array.tpl");

array.tpl
サーバーサイド技術には{$arch[0]}、{$arch[1]}、のような技術があります。
連想配列の入れ子の表示方法がわからんかった・・・・・・;