kiwiberry 迷你奇異果or奇異果梅

內容物是奇異果,外皮是棗子的新奇水果團購9顆116元,真不便宜

kiwiberry 迷你奇異果or奇異果梅

內容物是奇異果,外皮是棗子的新奇水果團購9顆116元,真不便宜

zf動態Layout

bootstrap.php 新增pluginClass處理動態Layout

<?php
    Zend_Layout::startMvc(
    array(
        'layoutPath' => '/application/views/layouts/scripts',
        'layout' => 'layout',
        'pluginClass' => 'GPMS_Util_Layout'
    )
);

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
}

自訂動態Layout Class,預設導到portal.phtml,其他by module切割

<?php
class GPMS_Util_Layout extends Zend_Layout_Controller_Plugin_Layout
{
  public function preDispatch(Zend_Controller_Request_Abstract $request)
  {
    switch ($request->getModuleName()) {
        case 'default':
            $this->_moduleChange('portal');
        break;
        default:
        break;
    }
  }
  protected function _moduleChange($moduleName) {
    $this->getLayout()->setLayout($moduleName);
  }
}

ZF套用library規則

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目錄說明

  1. quickstart (專案名稱產生的目錄)
  2. |-- application (App位置)
  3. |   |-- Bootstrap.php
  4. |   |-- configs (設定檔)
  5. |   |   `-- application.ini
  6. |   |-- controllers
  7. |   |   |-- ErrorController.php
  8. |   |   `-- IndexController.php
  9. |   |-- models (模組化分類,底下會有自己的Controllers/Modules/Views)
  10. |   `-- views
  11. |       |-- helpers
  12. |       `-- scripts
  13. |           |-- error
  14. |           |   `-- error.phtml
  15. |           `-- index
  16. |               `-- index.phtml
  17. |-- library (第三方函式庫、自製函式庫,預設zend library也是放這)
  18. |-- public (公開資料位置,網站Root)
  19. |   |-- .htaccess
  20. |   `-- index.php
  21. `-- tests (測試資料,PHPUnit)
  22.     |-- application
  23.     |   `-- bootstrap.php
  24.     |-- library
  25.     |   `-- bootstrap.php
  26.     `-- phpunit.xml

zf 常用command整理

建立專案:

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"用分號註解掉就會正常

將zf project放於Directory下,不另外設定VirtualHost

  • Project置放於Apache htdocs下
  • 於Project下新增檔案:.htaccess

該檔案結構如下:

RewriteEngine on

RewriteRule (.*) ./public/$1

  • http.conf的Directory改成下面設定:

<Directory "C:\Program Files\Zend\Apache2/htdocs">

Options Indexes FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

</Directory>

  • 重新啟動Apache

設定VirtualHost給zf project

  • 於httpd.conf定義新的VirtualHost - 直接當Root時
  • <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>

     

  • 定義新的Port記得需要額外Listen該Port
  • Listen 81

     

  • 設定好記得重新啟動apache

XP安裝ZendServer-CE

    最簡單安裝方式,抓CE Server(社群版),如:ZendServer-CE-php-5.3.14-5.6.0-SP2-Windows_x86.exe,下載該執行執行執行就好,不過個人推薦它可以選擇裝在IIS上面或Apahce上面,建議用Apache,畢竟通通用Opensource的東西比較好整合,M$的還是自家整合比較單純。

  1. XP現在都有的安裝警告

    clip_image001

  2. Installation讀取畫面

    clip_image002

  3. 這次安裝版本是Zend Server Community Edition 5.6

    clip_image003

  4. License Agreement

    clip_image004

  5. 安裝類型,我習慣用Custom看一下大致裝了什麼

    clip_image005

  6. 第一次可以不調整安裝內容,如果需要加裝phpMyAdmin/MySQL Server也可以勾起來,不過我個人建議沒友直接聯繫的情況,分開裝比較單純

    clip_image006

  7. Zend Server安裝之Web Server挑選,這邊我選擇Install an Apache 2.2.22 Web Server,它同時幫我們裝Apache Httpd Server

    clip_image007

  8. 預設80 Port已經被IIS搶走了,所以我把Web Server Port改成8080,不過後面的Occupied還是持續顯示沒有立即更新

    clip_image008

  9. 列入此次要安裝的清單

    clip_image009

  10. 持續安裝

    clip_image010

  11. 安裝完成,預設直接啟動Zend Server

    clip_image011

  12. 此時右下角常駐圖示會多兩個圖示,分別代表:  Zend Server、  Apache Server

    clip_image012

  13. 很不幸的預設執行的Zend Server是掛點的

    clip_image013

  14. 查看Apache Error.log

    clip_image014

  15. Error.log顯示 Zend Enabler沒辦法讀取,XML Parse錯誤

    clip_image015

  16. 於Zend Server/Etc目錄下檢查ZendEnablerConf.xml檔

    clip_image016

  17. 用Notepad++開啟後,編碼有錯誤的問題

    clip_image017

  18. 直接將第一行砍掉,另存成UTF-8編碼

    clip_image018

  19. 重新執行Apache

    clip_image019

  20. 重新執行Zend Server

    clip_image020

  21. 終於看到正常的Zend Server第一次執行畫面

    clip_image021

  22. 設定Server password

    clip_image022

  23. 初次設定完畢

    clip_image023

  24. 平常Zend Server畫面

    clip_image024

  25. 測試command功能,執行cmd

    clip_image025

  26. 於Command模式下,執行zf

    clip_image026

  27. 出現zf指令提示,大功告成!

    clip_image027

橫式廣告