在 application 目錄下,新增 modules 目錄 (對照 application.ini 裡的設定)。
在modules 目錄下,新增各別的 modules 名稱,例如 admin,default 等。
在各別 module 目錄下(如 admin ),新增 controllers、models、views 三個目錄。
分別修改以下檔案:
開啟
\application\application.ini
加入
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" // 此目錄需對應上述實體目錄
resources.modules = ""
resources.frontController.defaultModule = "Default" // 如果是 default 下的 controller 可以不用加注
開啟
\application\bootstrap.php
確認 class 名稱為:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {}
加入
protected function _initFrontController() {
$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory(array(
'default' => APPLICATION_PATH . '/modules/Default/controllers',
'admin' => APPLICATION_PATH . '/modules/Admin/controllers'
));
return $front;
}
其中,
'default' => APPLICATION_PATH . '/modules/Default/controllers',
中的 default 為瀏覽器輸入的
http://you_web/default/index
中的 default , 而 admin 亦同,故可依自己的需求修改,後面的路徑亦需依實際路徑修改。
開啟 \application\modules\Default\bootstrap.php
確認 class 名稱為:
class Default_Bootstrap extends Zend_Application_Module_Bootstrap { }
開啟 \application\modules\Admin\bootstrap.php
確認 class 名稱為:
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap { }
另外,由於 controller 如是 default 底下的 class,可以不加 default ,而其他,如本例中的 admin ,其 controller 就需要加上前綴。
例如:
\application\modules\admin\IndexController.php
中,的 class 名稱需為:
class Admin_IndexController extends Zend_Controller_Action { }
如果有其他的 controller ,亦需如此。
2012年8月13日
2012年8月3日
在 Wamp 裡設定 VHost
為了要在 Wamp 裡建立多個 Zend Framework 的專案,又不要被 ZF 專案底下的 .htaccess 影響,所以透過 VHost 的方式處理。
1. 修改 apache 設定檔,開啟 httpd.conf 檔,如果是透過 Include conf/extra/httpd-vhosts.conf 設定 VHost 的話,則開啟此一檔案。
2. 修改或加入以下代碼:
DocumentRoot "D:\Wamp\www"
ServerName localhost
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common
ServerName MailParserWeb
DocumentRoot D:\Wamp\www\MailParserWeb\public
AllowOverride All
第一個 VirtualHost 是個留原本的 localhost 路徑,如果此一 VirtualHost 刪掉的話,都會指到後面的 VirtualHost裡。
第二個 VirtualHost 是欲增加的 Host ,其中「ServerName」名稱,需在 host 檔裡設定。
3. 開啟 Windows 裡的 host 檔,在 C:\WINDOWS\system32\drivers\etc\host ,加入以下:
127.0.0.1 MailParserWeb
即可。
4. 如果要在 NetBenas 裡,可以直接執行,需要修改其參數。在專案名稱下按右鍵,選擇
Properties -> Run Configuration
將「Project URL: 」 修改為 「http://MailParserWeb」即可。
1. 修改 apache 設定檔,開啟 httpd.conf 檔,如果是透過 Include conf/extra/httpd-vhosts.conf 設定 VHost 的話,則開啟此一檔案。
2. 修改或加入以下代碼:
DocumentRoot "D:\Wamp\www"
ServerName localhost
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common
ServerName MailParserWeb
DocumentRoot D:\Wamp\www\MailParserWeb\public
AllowOverride All
第一個 VirtualHost 是個留原本的 localhost 路徑,如果此一 VirtualHost 刪掉的話,都會指到後面的 VirtualHost裡。
第二個 VirtualHost 是欲增加的 Host ,其中「ServerName」名稱,需在 host 檔裡設定。
3. 開啟 Windows 裡的 host 檔,在 C:\WINDOWS\system32\drivers\etc\host ,加入以下:
127.0.0.1 MailParserWeb
即可。
4. 如果要在 NetBenas 裡,可以直接執行,需要修改其參數。在專案名稱下按右鍵,選擇
Properties -> Run Configuration
將「Project URL: 」 修改為 「http://MailParserWeb」即可。
在 NetBeans 裡透過 PhpDocumentor2 產生 phpdoc 出現錯誤
在 NetBeans 裡按下 Generate Doc 之後,出現錯誤訊息如下:
[RuntimeException]
Too many arguments.
由於目前暫時找不到原因,只好強迫執行,處理方式如下:
1. 建立一個批次檔,如「PhpDocMaker.bat」(建議放在專案的目錄下,如D:\Wamp\www\MailParserWeb\PhpDocMaker.bat),檔案內容如下:
phpdoc -d "D:/Wamp/www/MailParserWeb" -pp -i library/*
透過 -d 指定要產生文件的目錄;
加上 -pp 讓 private 的函數也一併產生文件檔;
加上 -i library/* 避免將 library 目錄下的文件也一併產生文件,如真的有需要,再把改一參數去掉即可。
2. 開啟 NetBeans -> Tools -> Option -> PHP -> PhpDoc,將 PhpDoc Script 所指向的檔案,改成上述的批次檔
3. 第一次執行時, NetBeans 會詢問產生的文件檔案要放置何處,故不需加上 -t 參數。
注意:
這樣的做法,會使得所有的專案都使用同一個批次檔執行,故如要應用在其他專案上時,需把目標目錄加以更改( -d )。
[RuntimeException]
Too many arguments.
由於目前暫時找不到原因,只好強迫執行,處理方式如下:
1. 建立一個批次檔,如「PhpDocMaker.bat」(建議放在專案的目錄下,如D:\Wamp\www\MailParserWeb\PhpDocMaker.bat),檔案內容如下:
phpdoc -d "D:/Wamp/www/MailParserWeb" -pp -i library/*
透過 -d 指定要產生文件的目錄;
加上 -pp 讓 private 的函數也一併產生文件檔;
加上 -i library/* 避免將 library 目錄下的文件也一併產生文件,如真的有需要,再把改一參數去掉即可。
2. 開啟 NetBeans -> Tools -> Option -> PHP -> PhpDoc,將 PhpDoc Script 所指向的檔案,改成上述的批次檔
3. 第一次執行時, NetBeans 會詢問產生的文件檔案要放置何處,故不需加上 -t 參數。
注意:
這樣的做法,會使得所有的專案都使用同一個批次檔執行,故如要應用在其他專案上時,需把目標目錄加以更改( -d )。
PhpDocumentor2 無法正常運作
PhpDocumentor2 執行時,如出現以下錯誤訊息:
Unable to find the `dot` command of the GraphViz package
先到 Graphviz 的官方網站:
http://www.graphviz.org/
下載、安裝後,在 php.ini 裡的 include_path 裡,將 Graphviz 的路徑加入即可。
Unable to find the `dot` command of the GraphViz package
先到 Graphviz 的官方網站:
http://www.graphviz.org/
下載、安裝後,在 php.ini 裡的 include_path 裡,將 Graphviz 的路徑加入即可。
2012年8月1日
用 netbeans 開發 Zend Framework Project - 設定
把 Apache、PHP、Pear、Zend Framework、PhpDocumentor2 等安裝好之後,開啟 NetBeans -> Tools -> Options
選擇 PHP 項目,在 Command Line 用 Search 就可以找到 php.exe,
Global Include Path 中,將 PHP 目錄、 Pear 目錄加入(這樣NetBeans才能找到相關Library),
Unit Testing、PhpDoc、Zend,都可以用 Search 找到對應的檔案。
選擇 PHP 項目,在 Command Line 用 Search 就可以找到 php.exe,
Global Include Path 中,將 PHP 目錄、 Pear 目錄加入(這樣NetBeans才能找到相關Library),
Unit Testing、PhpDoc、Zend,都可以用 Search 找到對應的檔案。
2012年7月31日
pear 安裝 phpdocumentor2 失敗
原本執行:
pear install phpdoc/phpDocumentor-alpha
還有其他相依套件沒有安裝,所以要加上「--alldeps」參數,變成:
pear install --alldeps phpdoc/phpDocumentor-alpha
才行。
另外,由於 phpDocumentor2 需要 XSL 這個 extension ,故需要在安裝的時候開啟,否則也會出現錯誤訊息。
pear install phpdoc/phpDocumentor-alpha
還有其他相依套件沒有安裝,所以要加上「--alldeps」參數,變成:
pear install --alldeps phpdoc/phpDocumentor-alpha
才行。
另外,由於 phpDocumentor2 需要 XSL 這個 extension ,故需要在安裝的時候開啟,否則也會出現錯誤訊息。
pear 安裝套件失敗
透過 pear 安裝 Zend Framework 時,發生錯誤如下:
No releases available for package "pear.zfcampus.org/zf"
install failed
查了一下,應該是 cache 的問題,清一下就好了,命令如下:
pear clear-cache
No releases available for package "pear.zfcampus.org/zf"
install failed
查了一下,應該是 cache 的問題,清一下就好了,命令如下:
pear clear-cache
Wamp 安裝 Zend Framework
網路上很多資料,大概如下:
實際上自己安裝的時候,發生路徑不正確的問題。
要先進到 Zend 的安裝目錄,執行:
zf --setup config-file
產生 config 檔,再修改此一 config 檔內容,將 include_path 加上上述的第4點 (PHP library)。
转载的文章:
WINDOWS 下WAMP环境下 的 Zend Framework 配置
1,安装WampServer
下载WAMPSERVER并安装,在本例中,安装在C:\wamp下。
2 安装Zend Framework
解压缩 Zend Framework 压缩包中 \library\ 至 C:\wamp\library (这里面没有library目录,要自己建一个)
3 开启支持rewrite module
编辑 httpd.conf。
- 编辑 C:\wamp\bin\apache\Apache2.2.10\conf\httpd.conf 文件。或
- 右击托盘里WampServer小图标 --> Apache --> httpd.conf
# LoadModule rewrite_module modules/mod_rewrite.so
去掉 '#',改为:
LoadModule rewrite_module modules/mod_rewrite.so
4 PHP library 设置
- 编辑 C:\wamp\bin\php\php5.2.7\php.ini,或
- 右击托盘里WampServer小图标 --> PHP --> php.ini
; Windows: "\path1;\path2"
; include_path = ".;c:\php\includes"
去掉 ';',并且加上Zend Framework 压缩包安装路径,改为:
; Windows: "\path1;\path2" (这里的分号没有去掉)
include_path = ".;c:\php\includes;c:\wamp\library;"
5. 生产quickstart项目
Windows开始菜单点击运行,输入"CMD",打开Dos命令窗口,
运行命令:"set path=%path%;C:\wamp\bin\php\php5.2.9-2;"注册php.exe的路径
运行命令:"cd C:\wamp\www",将当前路径切换到WAMP的网站文档www路径
运行命令:"ZendStudio\ZendFramework-1.8.1\bin\zf.bat create project quickstart
注意将zf.bat的路径换成你自己的路径,稍候,zf.bat建立quickstart项目:"Creating project at C:/wamp/www/quickstart"
6. 测试示例项目
打开浏览器,浏览"http://localhost/quickstart/public/",可以看见"Welcome to the Zend Framework!"的页面了。(如果没有显示请重启wmap)
實際上自己安裝的時候,發生路徑不正確的問題。
要先進到 Zend 的安裝目錄,執行:
zf --setup config-file
產生 config 檔,再修改此一 config 檔內容,將 include_path 加上上述的第4點 (PHP library)。
2012年7月30日
在 netbeans 裡以 PhpDocumentor2 做為 PhpDoc 產生器-5
產生的 Doc 檔出現錯誤
1. timezone
雖然在 php.ini 裡設定了,但是還是沒用,所以直接到發生問題的檔案裡處理:
[php安裝目錄]\PhpDocumentor\phpDocumentor\Smarty-2.6.0\libs\Smarty_Compiler.class.php
在370行附近,應該可以看到:
strftime("%Y-%m-%d %H:%M:%S")
這在一行之前,加上:
date_default_timezone_set("Asia/Taipei");
不同時區自行修改 "Asia/Taipei" 內容。
2.編碼問題
將 [pear 安裝目錄]\data\PhpDocumentor\phpDocumentor\Converters
底下所有檔案拖曳到 Notepad++ 中(檔案多,要等一下),將所有文件中的「iso-8859-1」取代為「utf-8」即可。
1. timezone
雖然在 php.ini 裡設定了,但是還是沒用,所以直接到發生問題的檔案裡處理:
[php安裝目錄]\PhpDocumentor\phpDocumentor\Smarty-2.6.0\libs\Smarty_Compiler.class.php
在370行附近,應該可以看到:
strftime("%Y-%m-%d %H:%M:%S")
這在一行之前,加上:
date_default_timezone_set("Asia/Taipei");
不同時區自行修改 "Asia/Taipei" 內容。
2.編碼問題
將 [pear 安裝目錄]\data\PhpDocumentor\phpDocumentor\Converters
底下所有檔案拖曳到 Notepad++ 中(檔案多,要等一下),將所有文件中的「iso-8859-1」取代為「utf-8」即可。
在 netbeans 裡以 PhpDocumentor2 做為 PhpDoc 產生器-4
測試
在 Netbeans 裡,開啟一個新的 Project ,選擇:
PHP -> PHP Application
直接按下 Finish,建立完成。
在 index.php 檔中,將內容修改為以下:
echo getTestString();
/**
* this is a test
* 這是用來傳回「test」字樣用的數
* @return string
*/
function getTestString() {
date_default_timezone_set("Asia/Taipei");
echo date_default_timezone_get();
return "test";
}
/**
* 加法函數,用以計算二個數的相加之後的結果
*
* 這是個簡單的加法計算,函數接收二個引數:a, b,再return 他們的和
*
* @param int 加數
* @param int 被加數
* @return integer 總和
*/
function Add($a, $b) {
return $a + $b;
}
?>
存檔後,在 Project Name (PhpApplication)上,按下右鍵,選擇「Generate PhpDoc」即可。
在 Netbeans 裡,開啟一個新的 Project ,選擇:
PHP -> PHP Application
直接按下 Finish,建立完成。
在 index.php 檔中,將內容修改為以下:
echo getTestString();
/**
* this is a test
* 這是用來傳回「test」字樣用的數
* @return string
*/
function getTestString() {
date_default_timezone_set("Asia/Taipei");
echo date_default_timezone_get();
return "test";
}
/**
* 加法函數,用以計算二個數的相加之後的結果
*
* 這是個簡單的加法計算,函數接收二個引數:a, b,再return 他們的和
*
* @param int 加數
* @param int 被加數
* @return integer 總和
*/
function Add($a, $b) {
return $a + $b;
}
?>
存檔後,在 Project Name (PhpApplication)上,按下右鍵,選擇「Generate PhpDoc」即可。
在 netbeans 裡以 PhpDocumentor2 做為 PhpDoc 產生器-2
2. 安裝 PhpDocumentor2
官網: http://www.phpdoc.org/
已安裝 pear 的狀況下,並不需要太複雜的安裝過程,只要在命令模式下,執行以下二個指令即可:
$ pear channel-discover pear.phpdoc.org
$ pear install phpdoc/phpDocumentor-alpha
注意:
1. 需將 pear.bat 加入到系統 path 路徑中。
2. 中間會需要下載檔案、解壓縮等工作,但畫面會都是黑的,一直到下載完成,才會出現下一個畫面,要等一段時間。
如果安裝成功,將會在 pear\data 目錄下,多出一個「PhpDocumentor」的目錄。
官網: http://www.phpdoc.org/
已安裝 pear 的狀況下,並不需要太複雜的安裝過程,只要在命令模式下,執行以下二個指令即可:
$ pear channel-discover pear.phpdoc.org
$ pear install phpdoc/phpDocumentor-alpha
注意:
1. 需將 pear.bat 加入到系統 path 路徑中。
2. 中間會需要下載檔案、解壓縮等工作,但畫面會都是黑的,一直到下載完成,才會出現下一個畫面,要等一段時間。
如果安裝成功,將會在 pear\data 目錄下,多出一個「PhpDocumentor」的目錄。
在 netbeans 裡以 PhpDocumentor2 做為 PhpDoc 產生器-1
1. 安裝pear
pear 官網: https://pear.php.net/index.php
installation 網頁: https://pear.php.net/manual/en/installation.php
安裝檔: http://pear.php.net/go-pear.phar
這個安裝檔是用 php 寫成的,所以要用 php.exe 直接執行,可以將 php.exe 加到系統 path 路徑裡。
在命令模式中,執行:
php go-pear.phar
出現:
Are you installing a system-wide PEAR or a local copy?
(system|local) [system] :
輸入「local」Enter
再指定各個參數的路徑即可。
pear 官網: https://pear.php.net/index.php
installation 網頁: https://pear.php.net/manual/en/installation.php
安裝檔: http://pear.php.net/go-pear.phar
這個安裝檔是用 php 寫成的,所以要用 php.exe 直接執行,可以將 php.exe 加到系統 path 路徑裡。
在命令模式中,執行:
php go-pear.phar
出現:
Are you installing a system-wide PEAR or a local copy?
(system|local) [system] :
輸入「local」Enter
再指定各個參數的路徑即可。
訂閱:
意見 (Atom)