目前日期文章:200811 (9)

瀏覽方式: 標題列表 簡短摘要

 

接下來就是把上篇所定義的Controller 程式的實作

 

一、先把網站內,所有網頁的處理,引導到index.php中作控制

很簡單的設定 [.htaccess] 就可達到這目的了

RewriteEngine on

RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

 

語法是很簡單的

可以嘗試打任一的php網頁,都會導向index.php作處理

但是$_SERVER["REQUEST_URL"]還是使用者要求的網頁喔~~這點很重要

因為開發的物件,就要利用這點來進行撰寫

miggo 發表在 痞客邦 PIXNET 留言(0) 人氣()

剛接觸MVC的各種framework時(例如CakePHP)

最感困惑的就是程式的架構方式

以MVC的整體架構而言,是由Controller進行掌控的

這樣講或許有點模糊,以下是常見到的MVC架構圖


MVC.PNG


Controller 是程式的進入點,掌控整體流程,也是事件的觸發器 

或許這樣講有點模糊,清楚的用"輸入"與"想要的輸出"來表示,可能會清楚很多

miggo 發表在 痞客邦 PIXNET 留言(0) 人氣()

前言:研究PHP MVC的動機

從最早接觸的PHP 3.x 版本,開發時都是採用html + php 程式的方式進行

我想這就不用談了,大部分剛開始的PHP教學書籍,都是採用此種寫法作介紹吧!

較進階的是使用Smarty,程式和視覺分開撰寫,感覺上比較有系統,

優點非常明顯,就是視覺和程式的同步修改,彼此的影響干擾很小

但在陸續執行幾個網站後,慢慢就發現僅是Smarty的架構是不夠的~

採用Smarty的程式,大略是長成這樣的

 

網址傳入

 http://www.xxx.com/message.php?EditMode=edit

 

message.php內容長的像這樣子:

miggo 發表在 痞客邦 PIXNET 留言(0) 人氣()

網頁charset採用UTF-8編碼,理論上JavaScript alert訊息應該也是UTF-8的

但實際上如果頁面沒有header,採用的編碼預設以預設為主

經常會出現亂碼狀況

有指定Script的編碼

 <script charset="UTF-8">

 似乎無效

解決方式有:

1.alert訊息前,加入meta的編碼設定,可是需每個程式修改,不是很好的方法。

2.更改php.ini預設編碼

 ; PHP's built-in default is text/html

default_mimetype = "text/html"

miggo 發表在 痞客邦 PIXNET 留言(2) 人氣()

Kiwi格網技術開發站(進階php程式設計-介紹MVC與Cakephp)

 http://kiwi.csie.chu.edu.tw/blog/archives/39

透視 WebMVC

http://www.jaceju.net/resources/webmvc/


miggo 發表在 痞客邦 PIXNET 留言(0) 人氣()

本線上英文教學網站是採用 Zend Framework + Smarty樣板進行製作的

開發過程中,因客戶的需求變更頻繁,且視覺設計是他自家的設計師

往往是他內部自行決定變動(視覺也改了) 才跟你講程式要變更~!!

還把這種需求列在追蹤項目中,反反覆覆的進行了不知幾次的變動修正

製作和結案過程相當困難。

1.網站首頁

這專案值得紀錄的地方有:

  • 課程的狀態邏輯非常複雜,各時間點的交錯下(例如報名截止/取消截止/候補截止時間),須能對應正確的使用者和課程狀態
  • 開課或教材上傳,都需與JoinNet軟體進行界接
  • 初次採用Zend Framework開發,但僅當成Library使用,滿可惜的~~(想研究Zend的MVC架構)

2.這是會員登入後的頁面,

會員線上購買點數後,可選擇課程報名,也可以試聽課程

miggo 發表在 痞客邦 PIXNET 留言(0) 人氣()

好文章紀錄:

http://www.ichiayi.com/wiki/tech/mantis_coding

 


miggo 發表在 痞客邦 PIXNET 留言(0) 人氣()

今天上傳將PHP程式,上傳到一台虛擬主機中

出現以下的錯誤訊息

Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in /home/XXX/XXX/inc_log.php on line 6

檢查一下,原來是PHP不建議此種寫法

function aaa($id){ }

aaa(&$id);

 

要修改成以下方式就可以了

function aaa(&$id){ }

aaa($id);

 

解決方法還可以將php.ini中

miggo 發表在 痞客邦 PIXNET 留言(0) 人氣()

程式開發上都會使用到一些framework,在目錄設定上很麻煩都須修改php.ini內容

但是在上一個專案上遇到困難了...客戶是使用虛擬主機

解決方法有兩種,第一個是可以在.htaccess檔案裡,寫入以下資料

php_value include_path ".:/home/www/htdocs/message/library/"

疑? 有些虛擬主機還是不行..............

那請檢查httpd.conf內對.htaccess的開放和限制囉

第二個解決方法是從程式進行設定

在include前先加入
ini_set('include_path','.
:/home/www/htdocs/message/library
');

兩種方法都可以解決喔^^


miggo 發表在 痞客邦 PIXNET 留言(1) 人氣()

找更多相關文章與討論