在 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 ,亦需如此。
峻仔的blog
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
訂閱:
意見 (Atom)