1.從http://www.apache.org下載相應(yīng)的apache版本。
2.從http://www.php.net下載相應(yīng)的php版本。
3.從http://www.phpmvc.net下載相應(yīng)的php.mvc版本。
4.建立目錄c:/www作為web服務(wù)器目錄,c:/webapp作為web根目錄,
你也可以定義自己的目錄,以下作相應(yīng)的修改即可。
5.將apache安裝到c:/www,打開瀏覽器,在地址欄輸入http://localhost測(cè)試是否安裝成功
注意:如果你的系統(tǒng)上已經(jīng)安裝有其他web服務(wù)器(如iis 5),且占用了80端口,請(qǐng)先停止該服務(wù)器。
6.把php壓縮到一個(gè)目錄下,如:f:/php5
7.把php目錄下的php.ini-dist拷貝到系統(tǒng)目錄,c:/winnt,改名叫php.ini
8.根據(jù)php的版本,這里是php5,把php5ts.dll和libxxx.dll文件拷貝到c:/winnt/system32下
9.打開apache的配置文件httpd.conf,apache默認(rèn)安裝在c:/program files/apache group/apache2下,因此配置文件就在這個(gè)目錄的conf下
10.找到loadmodule那行,在下面輸入:loadmodule php5_module "f:/php5/php5apache2.dll"(請(qǐng)根據(jù)你的位置修改)
11.找到addtype那行,在下面加入:addtype application/x-httpd-php .php
12.保存配置文件,打開php.ini文件
13.找到doc_root,在等號(hào)后面的引號(hào)里寫上你的apache的web根目錄,如:doc_root = "c:/www"
14.找到extension_dir,在等號(hào)后面的引號(hào)里寫上你的php5目錄下的ext目錄地址,如:extension_dir = "f:/php5/ext".注:php4是extension目錄
15.找到extension,這些行前面都有逗號(hào),就是注釋,你可以看你的php5下的ext目錄下(php4是extension目錄)有那些dll,然后就把前面的逗號(hào)去掉.
16.保存php.ini,打開apache,如果有錯(cuò)誤請(qǐng)仔細(xì)查看上面的步驟.然后在寫一個(gè)php文件,內(nèi)容是:
<?php
phpinfo();
?>
保存為test.php,然后放到web根目錄下,打開瀏覽器,輸入:http://localhost/test.php,看看能不能正確顯示.如正確即安裝成功.
安裝php.mvc:
1.將下載的php.mvc解壓到web根目錄下的phpmvc下(可自己改名字).
2.打開phpmvc下的main.php打開,找到
$appserverrootdir = 'c:/webapp/phpmvc'; // no trailing slash
引號(hào)中間就是你要修改的phpmvc的解壓目錄
$modulerootdir = 'c:/webapp/phpmvc'; // no trailing slash
引號(hào)中間修改為和$appserverrootdir一樣,因?yàn)檫@里是phpmvc的主目錄,所以一樣
$ostype = 'windows';
引號(hào)中間修改為你的操作系統(tǒng)名,它的值只能是unix,windows,mac中的一個(gè)
3.保存此文件,確認(rèn)c:/webapp/phpmvc/web-inf目錄下phpmvc-config.data有可寫權(quán)限。
4.打開瀏覽器,在地址欄輸入http://localhost/phpmvc/main.php?do=stdlogon測(cè)試是否安裝成功。(但是我一直都不成功)
5.要查閱更為詳細(xì)的安裝文檔,請(qǐng)看http://www.phpmvc.net/docs/installidx.php?doc=all
6.如果出現(xiàn)call to a member function on a non-object in /web-inf/classes/phpmvc/utils/bootutils.php錯(cuò)誤,請(qǐng)先刪除/web-inf/phpmvc-config.data文件內(nèi)容,然后手動(dòng)修改一下phpmvc-config.xml,比如加一個(gè)空格(只需要讓php.mvc檢測(cè)出該文件已經(jīng)修改過,需要重新生成phpmvc-config.data文件即可).
安裝php.mvc的官方例子:(可選)
1.注意:本實(shí)例應(yīng)用程序要求類庫版本問php.mvc beta 0.3.4或更高
2.下載應(yīng)用程序: php.mvc users guide 101 example. (http://www.phpmvc.net/download/rel/phpmvc-guide-101.zip)
3.解壓縮到web根目錄,比如:c:/webapp/salesreports
4.編輯main.php文件,設(shè)置php.mvc類庫路徑及應(yīng)用程序路徑,如下:
$appserverrootdir = 'c:/webapp/phpmvc'; // no trailing slash
引號(hào)里面要修改成你的phpmvc的解壓目錄
$modulerootdir = 'c:/webapp/salesreports'; // no trailing slash
引號(hào)里面要修改成你的例子程序的解壓目錄
5.測(cè)試應(yīng)用程序.訪問地址http://localhost/salesreports/main.php?do=salesreport(這個(gè)我測(cè)試成功了)
開發(fā)一個(gè)自己的項(xiàng)目:
1.在web根目錄下新建目錄,如:study
2.將phpmvc解壓目錄下的main.php和web-inf目錄拷貝到study目錄下,我們要去除我們不需要的文件
3.進(jìn)入web-inf目錄,刪除除.htaccess,modulepaths.php,phpmvc-config.xml,phpmvc-config_1_1.dtd,prepend.php以外的目錄和文件
4.回到上層目錄,修改main.php文件(其實(shí)這個(gè)文件就是mvc的c,即控制器),找到$modulerootdir,修改為此項(xiàng)目的目錄,比如:c:/webapp/study
5.還要修改$actiondispatcher,后來需要修改,現(xiàn)在不需要
6.在web-inf下新建classes目錄,里面放actionform,action和actiondispatcher類(這些類可以參考上面說的那個(gè)例子,這里就不說了).寫好actiondispatcher類后還要把它寫到main.php中的$actiondispatcher里去.
7.你可以在web-inf的上層目錄寫一些php文件用來做顯示(也就是mvc的v,即視圖),然后配置web-inf下的phpmvc-config.xml(可以根據(jù)例子或查看官方網(wǎng)站的教程).
8.寫好后在瀏覽器中輸入:http://localhost/study/main.php?do=xxx
其中xxx代表你在phpmvc-config.xml中配置的一些action.看看你你的項(xiàng)目有沒有成功.
使用phpmvc自帶的adodb連接池:
1.下載ado庫,你可以在http://www.phpe.net/class/106.shtml找到
2.將它解壓到你的phpmvc解壓目錄下的web-inf/lib下,這樣你的ado庫可能在c:/webapp/phpmvc/web-inf/lib/adodb下
3.打開c:/webapp/phpmvc/web-inf下的globalpaths.php,在function getglobalpaths()中你可以看到許多$appdirs[],在這些$appdirs[]中添加一行:$appdirs[] = 'web-inf/lib/adodb';
即指定你的ado庫目錄
4.保存這個(gè)文件,打開globalprepend.php,添加:
include_once 'web-inf/lib/adodb/adodb.inc.php'; //ado的主文件
include_once 'web-inf/lib/adodb/drivers/adodb-mysqlt.inc.php'; //mysql的ado驅(qū)動(dòng)
include_once 'adodbdatasource.php'; //phpmvc自帶的ado接口文件
5.保存這個(gè)文件,打開phpmvc-config.xml文件在<phpmvc-config>標(biāo)簽中加入:
<data-sources>
<data-source key = "adodb_mysql_data_source" type = "adodbdatasource">
<set-property property = "host" value = "localhost"/>
<set-property property = "databasetype" value = "mysql"/>
<set-property property = "database" value = "study"/>
<set-property property = "username" value = "root"/>
<set-property property = "password" value = "123456"/>
<set-property property = "persistent" value = "false"/>
</data-source>
</data-sources>
請(qǐng)根據(jù)具體情況修改value中的值,其中databasetype那個(gè)值需要看你是什么數(shù)據(jù)庫了,不同數(shù)據(jù)庫value也不一樣,這里是mysql
6.找到web-inf/classes/phpmvc/dbcp目錄下的adodbdatasource.php,這個(gè)就是phpmvc自帶的ado接口文件,但是此文件不能工作,你需要修改一下.
首先它的注釋就沒擴(kuò)好,在文件的類定義class adodbdatasource extends adodb_mysqlt上面那些注釋沒有好好的筐上,你需要加個(gè)/*
而且雖然你在phpmvc-config.xml里設(shè)置了數(shù)據(jù)庫信息但好像它并沒有全部都能得到,你需要在function open()中的$this->pconnect之前加上:
$this->databasetype = 'mysql'; //指定數(shù)據(jù)庫是mysql
$this->database = 'study'; //指定數(shù)據(jù)庫名是study,請(qǐng)根據(jù)具體情況自行更改
7.保存此文件.現(xiàn)在你可以使用ado了,在你需要數(shù)據(jù)庫連接的地方,比如actionform和action中.
方法是:
$dskey = 'adodb_mysql_data_source'; //這個(gè)就是你在phpmvc-config.xml中設(shè)定的key
$db =& $this->actionserver->getdatasource($dskey); //得到連接
$sql = "select * from user"; //sql語句
$recordset =& $db->execute($sql); //執(zhí)行
if (!$recordset)
{
exit($db->errormsg());
}
$rowarray = $recordset->fetchrow(); //得到記錄
if (!$rowarray)
{
exit($db->errormsg());
}
echo $rowarray['username']; //請(qǐng)將引號(hào)中的內(nèi)容修改為你的字段名
echo $rowarray['password'];
$recordset->close(); //關(guān)閉連接
$db->close(); //關(guān)閉連接
8.現(xiàn)在來運(yùn)行一下你的程序吧
國(guó)際化:
1.你可以使用.properties文件(屬性文件)來記錄所有需要顯示的文字,這樣在視圖顯示的時(shí)候就不需要硬編碼文字了,這樣我們可以使用多個(gè).properties文件來顯示各國(guó)的語言
2.在這個(gè)例子中,我們寫一個(gè)小的文件:my.properties,內(nèi)容:
#井號(hào)是注釋
logon.username.reqd=請(qǐng)輸入一個(gè)合法的用戶名 [{0}]
logon.password.reqd=請(qǐng)輸入一個(gè)合法的密碼 [{0}]
先不用管[]中的東西,那個(gè)我們以后在講
3.保存文件到web-inf/classes下,即放在和action類一起的地方
4.現(xiàn)在就可以使用他們了,在需要文件的地方寫以下代碼:
$config = 'my'; //這里寫你的屬性文件的名字,不需要寫.properties,程序會(huì)自動(dòng)找
$defaultlocale = new locale(); //默認(rèn)的時(shí)區(qū)
$pmr = new propertymessageresources(null,$config,false);
$pmr->setdefaultlocale($defaultlocale);
//開始輸出文字
echo @$pmr->getmessage($defaultlocale, 'logon.username.reqd');
引號(hào)中的是你要輸出的文字在屬性文件里定義的屬性名
現(xiàn)在就可以了,我在前面使用了@,是因?yàn)檫@個(gè)可能會(huì)出現(xiàn)'notice'信息來破壞顯示
如果你覺得上面的太羅嗦,可以將輸出之前的語句寫在一個(gè)php文件中比如叫g(shù)lobal.php,然后每個(gè)頁都包含它
5.現(xiàn)在屬性文件中的內(nèi)容顯然是在用戶名和密碼輸入錯(cuò)誤的時(shí)候輸出的,那么我們也希望輸出的時(shí)候顯示那個(gè)不合法的用戶名和密碼,那么我們只需在要顯示的屬性名后面加上[{0}].我們也可能要顯示多個(gè)信息,那么就寫[{0}] [{1}],這樣依此類推.
6.現(xiàn)在我們需要在actionform中判斷用戶名和密碼的合法性,不合法就輸出錯(cuò)誤信息.那么我們?cè)趺唇o[{0}]傳遞要顯示的錯(cuò)誤用戶名呢?follow me:
$args = array($username); //其中$username就是錯(cuò)誤的用戶名,如果有多個(gè),都可以放在這個(gè)數(shù)組中
//現(xiàn)在就可以輸出了
echo @$pmr->getmessage($locale, 'logon.username.reqd', $args);
7.現(xiàn)在來做一個(gè)英文版的,將my.properties文件復(fù)制成my_en_us.properties,并將文件中的文字修改成英文的,保存
8.我們剛才做的那個(gè)global.php文件,修改一下:
$defaultlocale = new locale('en_us'); //改成美國(guó)時(shí)區(qū),語言是英文
9.現(xiàn)在我們?cè)賮砜纯摧敵龅慕Y(jié)果,是不是已經(jīng)變成英文的了.如果你不知道國(guó)家和語言的代號(hào),比如:en_us,那么在phpmvc的解壓目錄下的/docs/locale目錄下可以找到
新聞熱點(diǎn)
疑難解答