Zend Framework

タグ

2011年11月30日 | コメント/トラックバック(0) |

カテゴリー:ZendFramework

Yiiの『初めてのアプリケーション』のカスタマイズ

Yiiの内部構造を調べるために、『初めてのアプリケーション』をカスタマイズしてみたいと思います。まず最初に、ブラウザに、『http://localhost/yii/testdrive』と入力して、『My Web Application』のトップページを開き、サイトのタイトル名を変更したいと思います。

1) 『testdrive/protected/config/main.php』ファイルを開き、10行目の『’name’=>’My Web Application’』を『’name’=>’WinRoad徒然草’』と変更します。

2) ブラウザで確認すると、サイト名とHomeの『Welcome to My WebSite』が変更されています。

3)  次に、メインメニューの表題を変更したいと思います。 『testdrive/protected/views/layouts/main.php』ファイルを開き、30行目から35行目を変更します。『Home』を『ホーム』へ、『About』を『始めに』へ、『Contact』を『お問い合わせ』へ、『Login』を『ログイン』へ、『Logout』を『ログアウト}へ変更します。

4) ブラウザで確認してみます。

5) ついでに、このページの他の部分も変更してみます。『testdrive/protected/views/site/index.php』ファイルを開き、日本語に変更します。

6) 尚、1行目のコードは不要ではないのかとは思いますが、とりあえずそのまま変更しました。ブラウザで確認してみます。

7) 『protected/views/site/pages/about.php』を開き、『始めに』のページも変更しました。

8) 『protected/views/site/contact.php』を開き、『お問い合わせ』のページも変更しました。但し、入力テキスト部分と『Verification Code』の部分は、別の箇所を変更する必要がありますが、バリデーションルールの変更等の部分までいじらないといけないみたいですので、その辺は後日勉強してからチャレンジしてみたいと思います。

9) 尚、コンタクトフォームからのメールを実際に受け取るには、『testdrive/protected/config/main.php』ファイルを開き、84行目のadminEmailを実際に使用可能なメールアドレスに変更する必要があります。

10) それでは、レンタルサーバーにアップして、実際にコンタクトフォームが使用可能かどうか検証してみたいと思います。

11) 入力が終了したら、送信ボタンをクリックしてみます。きちんとメールが届きました。コンタクトフォームはこのままでもすぐに使えるみたいです。

本日は以上です。

 

タグ

2011年11月30日 | コメント/トラックバック(0) |

カテゴリー:Yii

Yiiのビューとは

Yiiのビューとは、公式サイトによると『ビューは主にユーザインターフェースの要素によって構成される PHP スクリプトです。 ビューには PHP 文を含める事ができますが、その PHP 文でデータモデルを変更すべきではなく、 また、比較的シンプルなものに留めておくことを推奨します。 ロジック部とプレゼンテーション部の分離の精神に基づいて、ロジックの大部分は ビューではなく、コントローラかモデルに置くべきです。』とあります。

Yiiのビューでは、推奨はしていませんが、PHP文を含むことを認めています。小規模なサイトを作成するときは、この辺に融通が利く方が使い易そうです。

説明文を読んでもイメージがわかないので、実際に作成してみることにします。

1) 『welcome』フォルダごとコピーして、フォルダ名を『viewstest』と変更します。

2) 『protected』フォルダの中に、『views』フォルダを作成、その中に『layouts』フォルダ、さらにその中に『main.php』ファイルを作成します。

3) 『views』フォルダ内に、『site』フォルダを作成し、その中に『test.php』ファイルを作成します。

4) 『index.php』ファイルに下記コードを記載します。

<?php
// ブートストラップファイルの読み込み
require_once('yii.php');

// Webアプリケーションのインスタンス化
Yii::createWebApplication()->run();

5) 『layouts』フォルダの『main.php』ファイルに下記のコードを記載します。

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>ビューテスト</title>
</head>
<body>
<h1><?php echo $content;?></h1>
</body>
</html>

6) 『views/site』フォルダの中に、『test.php』ファイルを作成し、下記のコードを記載します。

<h1><?php echo $sitename;?></h1>
ビューファイルのテストです

7) 『controllers』フォルダのSiteController.phpファイルには下記のコードを記載します。

<?php
class SiteController extends CController
{
	public function actionIndex()
	{
		$this->render('test',array(
			'sitename'=>'WinRoad徒然草'));
 	}
}

8) ブラウザで確認してみます。

それでは、本日理解できたことをまとめてみます。

  • viewファイルは、『view』フォルダ内の『ControllerID』フォルダの中に作成します。つまり、コントローラクラスからControllerを削除した残りの文字の先頭を小文字に変換した文字(例:クラス名がSiteContorollerならviewファイルを保存するフォルダ名はsite)になります。
  • viewファイルは、$this->render(’引数’)で呼び出します。viewファイル内の引数.phpファイルを探し出し、『layouts』フォルダのmain.phpファイルを表示します。

少しですが、ビューファイルの表示方法がわかりました。本日は以上です。

タグ

2011年11月24日 | コメント/トラックバック(0) |

カテゴリー:Yii

Yiiのコントローラとは

Yiiの公式サイトによると、『コントローラ は CController か、CControllerを拡張したクラスのインスタンスです。 コントローラは、ユーザが要求した時にアプリケーションオブジェクト により生成されます。コントローラは、起動されると、要求されたアクションを実行するために、通常は、必要なモデルを取り込んで適切なビューを表示します。 アクションは、最も単純化された形式としては、コントローラクラスの action で始まる名前のメソッドです。』とありますが、Yiiの公式サイトは難しくてわかりづらいので、私なりにまとめてみたいと思います。

1) コントローラのクラス名は、先頭文字が大文字で始まるキャメルケースで命名され、Controllerという単語が末尾に付加される(例:SiteController、WelcomeController)。

2) コントローラのファイル名は、クラス名と同じ名前をつける(例:クラス名がSiteControllerならファイル名は、SiteCotroller.php)。

3) コントローラIDは、クラス名の先頭を小文字にし、Cotrollerを削除した文字である(例:コントローラ名がWelcomeControllerならコントローラIDはwelcomeである)。

4) デフォルトのコントローラ名は、SiteControllerである。ゆえに、デフォルトのコントローラIDはsiteである。

5) アクション名は、小文字で始まるactionに、大文字で始まるアクションIDを付加した文字である(例:actionIndex、actionTest)。

6) ActionIDは、アクション名からactionを削除した残りの文字の先頭を小文字に変換した文字である(例:actionIndex→index、actionPlay→play)

7) コントローラのデフォルトアクションはactionIndexである。ゆえに、デフォルトのアクションIDはindexである。

8) ルートはスラッシュとコントローラにより連結される。たとえば、ルートフォルダにあるindex.phpから『SiteController』の『actionIndex』にアクセスするには、URLは下記のようになる

http://ドメイン名/index.php?r=site/index

尚、デフォルトのコントローラID(site)とアクションID(index)は省略できるので、下記のように書き換えることが出来る。

http://ドメイン名/index.php又は、http://ドメイン名

9) コントローラのインスタンスは 『frameworl/web/CWebApplication.php』 が入ってきたリクエストを処理する 際に生成されます

以下にもコントローラについて述べられていましたが、いまいち理解度が足りないので、本日は以上です。

タグ

2011年11月22日 | コメント/トラックバック(0) |

カテゴリー:Yii

Yiiのアプリケーションとは

Yiiのアプリケーションとは何でしょうか。公式サイトによると『アプリケーションはリクエストが処理される実行コンテキストをカプセル化したオブジェクトです。 その主なタスクは、リクエストに関するいくつかの基本的な情報を収集して、その先の処理を行うために適切なコントローラへリクエストを送出することです。 さらにアプリケーションレベルの初期構成を保つための中心的な場所としても振舞います。 この理由からアプリケーションオブジェクトはフロントコントローラとも呼ばれます。』とあります。

つまり、Yiiでは、コントローラが実行される前に、アプリケーションが実行されるという事みたいですね。

アプリケーションの初期構成

公式サイトでは、『初期構成はキーと値のペアの要素を持つ配列です。キーはアプリケーションインスタンスのプロパティ名を表します。』とありますが、イメージがわかないので、新しくデモサイトを作成して試してみたいと思います。

1) ルートフォルダ上に、『welcome』というフォルダを作成して、配下に『protected』フォルダと『index.php』ファイル、『protected』フォルダの下に、『WelcomController.php』ファイルを作成します。

2) index.phpファイルに下記のコードを入力します。

<?php
// ブートストラップファイルの読み込み
require_once('yii.php');

// Webアプリケーションのインスタンス化
$configFile=array(
	'defaultController'=>'welcome');
Yii::createWebApplication($configFile)->run();

3) 『controllers』フォルダの『WelcomController.php』ファイルに下記のコードを入力します。

<?php
class WelcomeController extends CController
{
	public function actionIndex()
	{
		echo '<meta charset="utf-8">';
		echo '<h1>ようこそWinRoad徒然草へ</h1>';
		echo 'これはアプリケーションのテストです';
	}
}

4) それでは、Dreamweaverで『index.php』を開き、ライブコードをクリックして、どのように表示される確認してみます。

5) つまり、デフォルトコントローラーはエントリスクリプトで変更することが出来るということですね。

6) また、一般的には、『protected/config/main.phpファイルに、格納します』とありますので、これも検証してみます。

7) 『pretocted』フォルダの中に『config』フォルダ、その中に『main.php』ファイルを作成し、下記のコードを入力します。

<?php

return array(
	'name'=>'WinRoad徒然草',
	'defaultController'=>'welcome',
);

8) index.phpファイルを下記のように変更します。

<?php
// ブートストラップファイルの読み込み
require_once('yii.php');
$config=dirname(__FILE__).'/protected/config/main.php';

// Webアプリケーションのインスタンス化
Yii::createWebApplication($config)->run();

ブラウザを開き、きちんと表示されるか確認してみます。

http://y.winroad.info/welcome

きちんと表示されました。

以下のアプリケーションコンポーネントの概念がいまいちイメージできないので、今日はここまでにします。

タグ

2011年11月21日 | コメント/トラックバック(0) |

カテゴリー:Yii

Yiiのエントリスクリプトとは

Yiiのエントリスクリプトとは何でしょうか。公式サイトによると『エントリスクリプトは、ユーザリクエストを最初に受け付けるブートストラップ(立ち上げ)PHPスクリプトです。 これはエンドユーザが直接実行を要求することが出来る唯一のPHPスクリプトです。』とありました。

つまり、デフォルトでは、『WebRoot/index.php』の中に記述されているものと解釈すればいいのでしょうか。これ以外のフォルダやファイルは『WebRoot/protected』フォルダ内に保存され、基本的に直接アクセスできないように、『.htaccess』ファイルで制限されています。

このエントリスクリプトでは、yii.phpファイルを読み込み、指定された初期構成でアプリケーションインスタンスを実行しています。

インスタンス化とは、オブジェクト指向のプログラミングにおいて、インスタンス(クラスを基にした実際の値としてのデータ)を生成することである。通常、インスタンスはクラスと対比して使用される。例えば「名前、身長、体重」というクラスがあるとすれば、そのインスタンスは「佐藤、170、60」というよう風にして作られる。一つのクラスから複数のインスタンスを作ることができ、それぞれのインスタンスは違った値を持つことができる。また、プログラムの中で実際に扱われるのはクラスではなく、こうして作られたインスタンスの方である。 プログラミングの現場では、クラスを定義したあとで変数などの実体を用意するが、こうした処理がインスタンス化と呼ばれる。(IT用語辞典BINARYより)

これもデモサイトの『helloworld』フォルダのindex.phpファイルで検証してみます。

<?php

// include Yii bootstrap file
require_once(dirname(__FILE__).'/../../framework/yii.php');

// create a Web application instance and run
Yii::createWebApplication()->run();

require_onceで、yii.phpファイルを読み込み、『Yii::createWebApplication()->run()』でインスタンス化しています。

このyii.phpに直接アクセスできるように、レンタルサーバーのファイアバードでincludeパスを通しておきたいと思います。

『サーバー管理ツール』→『PHP環境設定』→対象のドメイン名を選択して『選択』ボタンをクリック→『php.ini直接編集』をクリックし、php.ini設定内容の最後の方に、下記コードを追加します。

include_path=".:/ドキュメントルート/y.winroad.info/yii/framework"

尚、ドキュメントルートはサーバー基本情報に記載されています。

それでは、『demos/helloworld』フォルダのindex.phpを下記のように変更します。

<?php

// include Yii bootstrap file
require_once('yii.php');

// create a Web application instance and run
Yii::createWebApplication()->run();

それでは、ブラウザで『helloworld』が表示されるか確認してみます。

http://y.winroad.info/yii/demos/helloworld

手探り状態でYiiの検証をしていますので、間違いがあるかもしれませんが、指摘していただければ幸いです。本日は以上です。

タグ

2011年11月19日 | コメント/トラックバック(0) |

カテゴリー:Yii

Yiiの初めてのアプリケーションの作成方法

Yiiには、新しいYiiアプリケーションを作成するのに、自動的にコードを自動生成する機能がついているみたいです。yiic(コマンドラインツール)を使用してみようと思ったのですが、WinRoad徒然草でお世話になっているファイアバードではtelnet/SSHがセキュリティの関係上、使用できないようになっているので、Xamppを利用して、ローカルサイトにYiiをインストールしてみることにしました。

この投稿の続きを読む »

タグ

2011年11月18日 | コメント/トラックバック(1) |

カテゴリー:Yii

Yiiの基本規約

Yiiの公式サイトのConvensions(取り決め)を見る限り、『Yiiは構成上での取り決めを支持します。取り決めを守る事で、 複雑な構成管理をコーディングする事なく洗練されたYiiアプリケーションを 作成できます。』となっています。

つまり、これは、CakePHPとCodeIgniterの両方のいいところ取りと考えてもいいのでしょうか。CakePHPは『設定よりも規約』を重要視しています。規約を重要視しているので、習得には時間がかかりますが、メンテナンス性はいいと思います。CodeIgniterは規約よりも速度や使いやすさに重点を置いているように思いますので、学習効率はいいと思います。

とりあえず、Yiiの推奨している規約(取り決め)を学習することにします。

 URL

まずデフォルトのURLを調べてみます。

http://hostname/index.php?r=ControllerID/ActionID

デフォルトのControllerIDが『site』、デフォルトの『ActionID』が『index』ですので、これをデモサイトの’Hello World’に当てはめてみると、

http://y.winroad.info/yii/demos/helloworld/index.php?r=site/index

となりますが、デフォルトの文字は省略できますので、

http://y.winroad.info/yii/demos/helloworld

と記述することも出来ます。

ということは、SiteController.phpに下記コードを追加すると

	public function actionTest()
	{
		echo 'This is Test site';
	}

http://y.winroad.info/yii/demos/helloworld/index.php?r=site/test

となります。

命名規則

公式サイトによると、『Yiiは変数名、関数名、クラス名に、単語の最初の文字を大文字に変換し 空白を除いて連結したキャメルケースで命名する事を推奨します。 変数名と関数名の最初の単語の先頭は、クラス名と区別をつけるために 小文字で始めて(例えば$basePath,runController(), LinkPagerの様にして)下さい。プライベートなクラスメンバ変数は アンダースコアを前置詞に使用する(例えば$_actionListの様にする) 事が推奨されています。』とありますが、いまいちわかりづらいので、私なりに整理してみます。これも間違えていたら後で修正します。

キャメルケースとは、アルファベットで複合語やフレーズを表記する際、各単語や要素語の先頭の文字を大文字で表記する手法のことである。
例えば、通常の英語の表記では「this is an example」とスペースで隔てて表記するが、キャメルケースでは「thisIsAnExsample」とつなげて表記する。
一番最初の単語(上記の例では「this」)の先頭文字を小文字にした表記方法は、キャメルノーテーション(camel notation)と呼ばれることもある。これに対して、「ThisIsAnExsample」のように先頭の文字を大文字にした場合は、アッパーキャメルケース、あるいはパスカルケース(PascalCase)などと呼ばれることが多い。(IT用語辞典BINARYより)

1) 基本的に、フォルダ名はデモサイトでわかるとおり、すべて小文字になっていますので、すべて小文字で統一します。

2) コントローラはファイル名とクラス名の両方とも頭の文字を大文字にして、空白やアンダーバーは使用せず、後続の単語も大文字で始まる(キャメルケース)で命名します(例:SiteController、WelcomeController)。

3) 関数名や変数名は、一番最初の文字を小文字で始める、キャメルノーテーションで表記します(例:actionIndex、actionPlay、actionTest)。

4) コントローラ名の特別な規則がちょっと面倒です。コントローラ名には、単語の語尾に必ず『Controller』を追加しなければならいのですが、コントローラIDは『Cotoroller』を削除して単語の先頭の文字の大文字を小文字に変換した単語です。つまりコントローラ名は『SiteController』ですが、コントローラIDは『site』ということになります。

5) クラスファイルは必ずパブリッククラスと同じ名前にしなければなりません。また、クラスファイルには、1つ以上のパブリッククラスを持つことはできません。プライベートクラスは同じクラスに入れることができます。

6) ビューファイルは、同じ名前のファイル名に含まれる必要があります。

7) 設定ファイル名は自由につけることができます。

フォルダ構成

Yiiはフォルダ構成により、色々整理しているみたいです。

1) WebRoot/protected

このフォルダは、index.php以外の全てのフォルダやデータファイルを保存する場所です。デフォルトでapplicationというエイリアス名でつながっています。このフォルダには、直接アクセスすることが出来ないように、『.htaccess』ファイルを設置します。

2) WebRoot/protected/runtime

このフォルダには、アプリケーションの実行時に作成されたプライベートな一時ファイルが保存されます。

3) WebRoot/protected/extensions

このフォルダは、全てのサードパーティ製の拡張ファイルを保存します。Yiiはこのパスに対して『ext』というデフォルトエイリアスを持ちます。

4) WebRoot/protected/modules

このフォルダには、全てのアプリケーションモジュールを保存します。それぞれのモジュールはサブフォルダ名で区別します。

5) WebRoot/protected/controllers

このフォルダにコントローラクラスファイルを保存します。

6) WebRoot/protected/views

このフォルダは、コントローラビュー、 レイアウトビュー、システムビューを含む全てのビューファイルを保存します。とありますが、まだ現段階では、コントローラビュー、レイアウトビュー、システムビューの概念がわかりません。

7) WebRoot/protected/views/ControllerID

このフォルダには、シングルコントローラクラスのビューファイルを保存します。

8) WebRoot/protected/views/layouts

このフォルダには、全てのレイアウトビューファイルを保存します。

9) WebRoot/protected/views/system

このフォルダは、全てのシステムビューを保存します。

10) WebRoot/assets

このフォルダは発行されたアセットファイルを保存します。

11) WebRoot/themes

このフォルダは、アプリケーションに適用可能な、様々なテーマを保存します。テーマごとに、サブフォルダで区別されます。

 データベース

1) データベース名とカラム名は小文字でつける。

2) 名前はアンダースコアで連結する。

3) テーブル名は、単数形にする。

4) テーブル名は共通のプレフィックスをつける。(たとえば、tbl_をつけます。)

 

とりあえず、基本規約はこんなところでしょうか。ただ、ほとんどの説明に推奨と書いてあり、強制はしないようです。

まだまだ、理解するには時間がかかりそうですが、本日は、以上です。

タグ

2011年11月17日 | コメント/トラックバック(0) |

カテゴリー:Yii

Yiiフレームワークの導入

CodeIgniterのライセンス変更に伴い、CodeIgniterでプログラムを作成する意欲がなくなってきた私は、他にいいPHPフレームワークがないかと探していたら、『Yii』(イー; [ji:]と発音します)というフレームワークが結構よさそうなので、導入して検証してみることにしました。ちなみにライセンスは数あるライセンスの中で、非常に制限の緩いBSDライセンスです。

全くの未知数で、日本語の書籍もまだないので、習得できるかどうかもわかりませんが、考えて立ち止まってもしょうがないので、一から勉強してみます。興味のある方はお付き合い下さい。Smartyの勉強と平行してやっていきたいと思います。

『Yii』のダウンロードページへ行き、最新のバージョン1.1.8のZipファイルをクリックします。今回もDreamweaverを使用して、レンタルサーバーのファイアバードへインストールしてみたいと思います。

1) ダウンロードしたZipファイルを解凍したら、ローカルのマイドキュメントに『y.winroad.info』(分かり易いようにサブドメイン名と同じフォルダ名)でフォルダを作成し、そこにダウンロードしたフォルダを『yii』に変更し、コピーします。

2) Dreamweaverを起動したら、『サイト』→『新規サイト』とクリックします。サイト名を『y.winroad.info』、ローカルサイトフォルダを先程作成した『c:¥マイドキュメント¥y.winroad.info』に指定し、左メニューのサーバーをクリックします。

3) 『+』アイコンで表示されている『新規サーバーの追加』をクリックします。サーバー名を『y.winroad.info』、使用する接続を『FTP』、FTPアドレスを『winroad.info』、ユーザー名を『winroad.info』と入力し、パスワードを入力したら、テストをクリックします。『DreamweaverはWebサーバーに接続されました。』と表示されたら、ルートディレクトリに『y.winroad.info』と入力し、『保存』ボタンをクリックします。

4) テストにチェックを入れて『保存』をクリックします。

5) サイトキャッシュを更新中のダイアログが消えたら、『展開してローカル及びリモートサイトを表示』アイコンをクリックします。

6) 『リモートホストに接続』アイコンをクリックします。リモートサーバーに接続されたら、ファイルをサーバーにアップします。

7) 公式サイトによると、Yiiのインストールが終ったら、サーバがYiiの要求を満足するかどうか確認する必要があるとのことです。ブラウザに下記のアドレスを入力してみます。

http://y.winroad.info/yii/requirements/index.php

8) どうやら大丈夫そうですので、demoサイトの『helloworld』フォルダをのぞいてみたいと思います。

9) 『helloworld』フォルダには、『protected』フォルダとその中に『contorollers』フォルダがあります。『helloworld』フォルダには、『index.php』ファイル、『protected』フォルダには、『.htaccess』ファイル、『controllers』フォルダには『SiteController.php』ファイルがあります。

10) 『yii/demos/helloworld』フォルダの中にある『index.php』を開いてみると、

<?php
// include Yii bootstrap file
require_once(dirname(__FILE__).'/../../framework/yii.php');

// create a Web application instance and run
Yii::createWebApplication()->run();

とありました。まず、最初にrequire_onceで『yii/framework』フォルダの『yii.php』ファイルを読み込み、『Yii::createWebApplication()->run()』で、アプリケーションを起動していると解釈すればいいのでしょうか。日本語の説明がわかりづらいので、まだよくわかりませんが、先に進みます。

11) dreamweaverのライブコードをクリックすると、htmlコードが生成されて、ブラウザに『Hello World』が表示されているのがわかります。

12) さて、この『Hello World』の文字は、どこから生成されているのでしょう。『SiteController.php』のファイルに『echo ‘Hello World’』の文字がありました。

<?php

/**
 * SiteController is the default controller to handle user requests.
 */
class SiteController extends CController
{
	/**
	 * Index action is the default action in a controller.
	 */
	public function actionIndex()
	{
		echo 'Hello World';
	}
}

13) つまり、この『SiteController.php』ファイルの『actionIndex()』を実行しているということだと思います。

14) 『index.php』ファイルに戻り、『Yii::createWebApplication()->run();』の意味を調べてみます。公式サイトのアプリケーションの項目に、

『初期構成はキーと値のペアの要素を持つ配列です。キーはアプリケーションインスタンスのプロパティ名を表します。 値は対応するプロパティの初期値です。 例えば、以下の初期構成ファイルはname及びdefaultControllerプロパティを構成します。

array(
    'name'=>'Yii Framework',
    'defaultController'=>'site',
)

』とありました。

つまり、createWebApplication()に$configを指定しなければ、デフォルトは、『controllers』フォルダの『SiteCntoroller.php』ファイルのSiteControllerクラスのデフォルトアクションであるacitionIndex()を実行するものと解釈して先に進めたいと思います。もし、間違っていたら後日訂正いたします。

たかだか’Hello World’を表示する行程を理解するだけで、かなり苦労してしまいましたので、習得できるかどうか不安ですが、Yiiの公式サイトによると、かの『CodeIgniter』よりも高速で、多機能みたいですので、頑張って習得したいと思います。

本日は以上です。

タグ

2011年11月16日 | コメント/トラックバック(0) |

カテゴリー:Yii

DreamweaverでSmartyを使うための設定

今まで、さんざんCodeIgniterの紹介をしてきたのに、今更、Smartyと思われるかもしれませんが、CodeIgniterのライセンス変更に伴い、CodeIgniterがかなり使いづらくなってきたなと感じ始めています。この辺の記事は、Kenji様のブログを見ていただければわかると思いますが、かなりきな臭くなっているCodeIgniterでプログラムを作成する意欲がなくなってきました。

それで、今更ながらSmartyを再度勉強し直そうかと考えました。私の場合は、昔からDreamweaverを愛用していますので、Dreamweaverとの相性がいいSmartyで社内サイトを構築し直そうと考えました。

この投稿の続きを読む »

タグ

2011年11月15日 | コメント/トラックバック(0) |

カテゴリー:Smarty

このページの先頭へ