bootstrap.php 新增pluginClass處理動態Layout
| <?php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap |
自訂動態Layout Class,預設導到portal.phtml,其他by module切割
| <?php |
bootstrap.php 新增pluginClass處理動態Layout
| <?php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap |
自訂動態Layout Class,預設導到portal.phtml,其他by module切割
| <?php |
Naming Rule決定位置
class Zend_Db_Table_Abstract 置放於:library\Zend\Db\Table\Abstract.php
Application.ini要適當調整來自動載入library
| [production] phpSettings.display_startup_errors = 0 phpSettings.display_errors = 0 includePaths.library = APPLICATION_PATH "/../library" bootstrap.path = APPLICATION_PATH "/Bootstrap.php" bootstrap.class = "Bootstrap" appnamespace = "Application" resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" resources.frontController.params.displayExceptions = 0 resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/" autoloadernamespaces.util = "Util_" // 新增自動載入的Library Util [staging : production] |
自訂Class測試,置放於Library/Util/SessionHelper.php:
| <?php class Util_SessionHelper // 在Library的Util目錄下建立SessionHelper.php { public function getLongonId(){ return "sheauren"; } } ?> |
使用方式:
| <?php $SessionHelper=new Util_SessionHelper(); echo $SessionHelper->getLongonId(); ?> |
建立專案:
zf create project projectName
執行後會產生整個專案所需的目錄
啟用Layout功能(套用樣板):
zf enable layout
產生Application/Layouts目錄,並且產生基本樣板檔案layouts/scripts/layout.phtml
新增Module:
zf module moduleName
執行後會於Application下產生該Module的目錄
新增Module's Controller:
zf create controller controlName moduleName
執行後會於該Module下產生該Controller檔案
新增Control's View:
zf create view viewName controlName moduleName
執行後會於該Controller下對映之View目錄產生該View檔案
新增Control's Action:
zf create action actionName controlName moduleName
執行後會於該Controller下產生該Action
新增Model:
zf create model modelName moduleName
執行後於該Module目錄下產生該Model檔案
資料庫設定:
zf configure db-adapter "adapter=PDO_MYSQL&host=localhost&username=root&password=pwd&dbname=projectName&charset=utf8" development;
於系統設定檔設定此資料庫連線
新增DbTable:
zf create db-table modelName tableName
於Model中新增此tableName的class
zf create db-table modelName tableName force-overwrite
強制覆蓋方式建立
產生整個DB的DbTable語法如下:
zf create db-table.from-database
如果發生錯誤:
Fatal error: Cannot redeclare class Zend_Loader in C:\Program Files\Zend\Apache2
\htdocs\AMIS\library\Zend\Loader.php on line 31
請將application.ini的includePaths.library = APPLICATION_PATH "/../library"用分號註解掉就會正常
該檔案結構如下:
| RewriteEngine on RewriteRule (.*) ./public/$1 |
| <Directory "C:\Program Files\Zend\Apache2/htdocs"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> |
<VirtualHost *:81>
ServerName localhost
DocumentRoot "C:\Program Files\Zend\Apache2\htdocs\ProjectName\public"
SetEnv APPLICATION_ENV "development"
<Directory "C:\Program Files\Zend\Apache2\htdocs\ProjectName\public">
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Listen 81
最簡單安裝方式,抓CE Server(社群版),如:ZendServer-CE-php-5.3.14-5.6.0-SP2-Windows_x86.exe,下載該執行執行執行就好,不過個人推薦它可以選擇裝在IIS上面或Apahce上面,建議用Apache,畢竟通通用Opensource的東西比較好整合,M$的還是自家整合比較單純。