1 3 7 - 1 4 4 1 - 9 7 9 7
首页 > 品牌伙伴 > 品牌伙伴详细内容

为甚么应用php,php网站制造经历

来源:响应式网页设计公司 | 作者:响应式网页设计公司 | 时间:2022-04-11 | 浏览:1096
字体大小:

响应式网页设计公司


大綱

● 認識 PHP网站建造

● PHP 設計經驗談

– 為什麼要用樣板

– 為什麼要用資料庫介面

– 什麼是 PEAR

– PHP + MySQL4.1s



2認識 PHP

● 跨平台網頁程式語言

● PHP 能够做的工作

● 大批的 OpenSource 套件



3跨平台的 PHP

● LAMP

– Linux + Apache + MySQL + PHP

● 幾乎统统的 Linux Dist 預設都有這些套件

● WAMP

– Windows + Apache + MySQL + PHP

● 快速環境创立

– Appserv

– Easyphp

● PHP For IIS



4PHP 能够做的工作

● Server-side scripting

– 網頁程式設計

● Command line scripting

– 用 PHP 來寫 Shell Script

● Client-side GUI applications

– PHP-GTK



5大批的 OpenSource 套件 (1)

● Forum:

– phpBB2

● CMS

– Xoops

– Mambo,Joomla

– PhpNuke

– postnuke

● Calender

– PHP iCalendar

– phpCalendar

– EasyPHPCalendar



6大批的 OpenSource 套件 (2)



● Groupware

– Egroupware

– DotProject

– Phpgroupware

● List

– PHPList

● Webmail

– Squirrelmail

● Blog

– WordPress

– Plog



7初學者的問題



● 程式碼直接寫在 HTML 中

– 市道上的書多半以此為教學

– 市道上大部分 PHP 的書本沒有說到樣版系統

– 習慣直接用 echo 輸出資料

● 不夠熟习 HTML

– 表格跨行,跨欄的使用

– 表單的設計

– POST 與 GET 的使用時機

● 不習慣在 register_globals=Off 使命

● 錯誤訊息的不熟习

– 對英文的恐懼 ?



8怎樣的程度才不算老手 ?



● 清晰懂得 Server Side 跟 Client Side 的差別

● 清晰懂得 register_globals 設定的意義

● 不會搞不清邏輯判斷跟變數值指定的分別



● 清晰懂得 POST 跟 GET,COOKIE 跟 Session 等的 關係與差別

● 對於根本錯誤訊息有辦法解讀

● 具備根本 HTML 阐明才能

– 平凡经常使用 TAG 阐明與參數使用

– TABLE tag 結構阐明



9PHP 設計經驗談



● PHP 程式設計標準

● 幾個進階時能够考慮學習

– 创立一個標準的檔案架構

– 至多熟习一套樣版程式

– 採用資料庫介面

– 多多使用 PEAR

● MySQL4.1

– Sub-Select

– Charset 的影響



10创立一個標準的檔案架構



● 你應該创立一個標準的檔案目錄架構

– 函式庫該放哪裡?

– 樣版該放哪裡 ?

– 外掛程式 ?

– 是否是有網站設定檔 ?

– 是否是有管理介面 ?

● 多參考今朝幾個 OpenSource 的 CMS

– Xoops, phpbb2,mambo 等

● 能够簡單的 , 就不要複雜



11PHP 程式設計標準



● 訂定專案程式設計標準的好處

– 變數,物件,函式有流动的定名体式格局

– 專案的程式風格統一,降落維護複雜度

● 進行中的專案不要随便變換標準

– 標準訂定應該是專案一開始就要決定的

– 標準訂定應該由專案參與人一同討論決定

● 能够參考的設計標準資料

– PHP 程式設計標準



12PHP 程式設計標準之外 (1)



● 架構整個網站的時候應該使用的方式

– 至多使用三層式程式設計

● 表現層 - 實際輸出 html

● 邏輯層 - 處理程式流程

● 資料處理層 - 處理資料存取



– 就是使用 MVC(Model-View-Controller) 架構你 的網站

– 函式,物件当中不要直接輸出資料

● 儘量採用 return $html 的体式格局處理



13PHP 程式設計標準之外 (2)



● 該用 echo 還是 printf ?

– 輸出平凡字串用 echo

– 輸出內含變數的字串用 printf

● printf('a href='%s' target='%s'>%s',$url,$target,$name);

● printf('a href='%s' target='%s'>%s',array($url,$target,$name));

– 當创立 SQL 語法的時候用 sprintf

● $SQL = sprintf('Select * from %s where ID = %s',$tableName,$id);



14至多熟习一套樣版程式



● 為什麼要用樣版 ?

● 兩套我推薦的樣版程式

– Smarty

– TBS



15為什麼要用樣版 ?



● 別讓明天的程式,成為明天維護的負擔

● 美術設計不再為了都是程式碼的網頁苦惱

● 程式設計不再為了都是 HTML Tag 的程式苦惱

● 網站設計改版將會是輕鬆的工作



16沒使用樣版的程式碼



使用樣版的程式碼



網頁樣版檔



官方推薦 Smarty



● Smarty 為 PHP 推薦使用的樣版引擎

– http://smarty.php.net

● Smarty 採用預先編譯樣版

– 速度較快

● Smarty 能够直接 assign 物件,陣列等

● Smarty 供给全域變數

– $smarty.get , $smarty.post ,$smarty.server

● Smarty 可直接輸出靜態頁面進行 Cache

● Smarty 增援外掛模組的使用

– SmartyValidate



20輕量化的 Smarty-lite



● 較適合單純的樣版需求環境

● 速度較 Smarty 更快

● 系統記憶體需求較少

● 功效上較 Smarty 少一些

– 無法 assign 物件

– 少了輸出前中後的過濾器

– 不增援樣版存入資料庫的形式



21小而強大的 TBS



● TBS – TinyButStrong

– http://www.tinybutstrong.com

● 所見即所得的樣版引擎

● 增援 Cache

● 直接存取資料庫顯示資料

– $TBS->MergeBlock('blk1',$cnx_id,'select *from t_country',$p_size,$p_num,$nbr_rec);



22為什麼要用資料庫介面 ?



● 為了寫出通用各資料庫的 PHP 程式

● 更利便使用的資料庫的功效

● 減少程式撰寫上的複雜



23ADOdb



● 降落 Windows 程式設計師學習門檻

– 部分介面設計類似 Microsoft's ADO

● 增援多種資料庫

– MySQL,PgSQL,Oracle,MSSQL etc......

● 增加了許多利便的方式,程式撰寫更輕鬆

– SelectLimit



– PageExecute,AtfirstPage,AtLastPage,Absolut ePage

– getInsertSQL,getUpdateSQL,autoExecute

● 資料庫快取,同樣的資料不用再讀資料庫

– CacheExecute

– CachePageExecute 24



ADOdb-lite



● ADOdb-lite 為 ADOdb 精簡版

● 資料庫增援程度幾乎不相高低

● 少了許多 ADOdb 供给的 Function

● 也減少了許多系統記憶體的耗用



25ADOdb 開發範例



● 設計分頁功效

– 分頁功效的應用很多

● 留言版 , 討論區 , 資料列表 , 訂單列表 ..etc

– $rs = $db->PageExecute($sql,$onePageStep,$_GET['page']);

if(!$rs->AtFirstPage()){

... // 進行上一頁聯結輸出

}

if(!$rs->AtLastPage()){

... // 進行下一頁聯結輸出

}



26什麼是 PEAR



● PHP Extension and Application Repository

– http://pear.php.net/

– 類似 Perl 的 CPAN

– 供给安裝程式與更新升級程式 pear

● 共 31 種分類的程式套件可供取用

– 经常使用的像 Database HTML Mail Networking



27安裝 pear 供给的套件



● 经常使用的 pear 指令



● 安裝與移除的時候都會提醒相依套件



28幾個好用的 PEAR 套件



● HTML 類

– HTML_QuickForm

– HTML_Table

– Pager

● XML 類

– XML_RSS

– XML_sql2xml

– XML_Tree

● Mail 類

– Mail

– Mail_Queue



● PHP 類

– PHPUnit

– PhpDocumentor

● Services 類

– Services_Delicious

– Services_Yahoo



29MySQL4.1



● 不久的將來各 Linux Dist 將預設 MySQL 4.1

● MySQL4.1 的優點

– 增援 Sub-Select

– 更完整的多國語系增援

– 速度更快

● 4.x 起 MySQL 有 Query Cache 功效

● MySQL4.1 還差什麼 ?

– Trigger

– Stored Procedures



30MySQL Subqueries



● MySQL 4.1 之前並沒有 Subqueries

● Subqueries 的好處

– SQL 語法更簡潔

– 可查詢的体式格局更多樣

● 請不要客氣的使用這個利便好用的功效吧 !

● 官方文件資料



– http://dev.mysql.com/doc/mysql/en/subqueri es.html



31Trigger 跟 Stored Procedures 呢 ?



● MySQL4.x 沒有 Trigger,Stored Procedures

● MySQL5 以後才會增援 Trigger

● MySQL5 以後才會增援 Stored Procedures

– 不過今朝 MySQL5 還在 beta 階段

– 但是今朝已經有部分網站已經使用



32讓 MySQL 更快



● 千萬不要忘記去調整你的 my.cnf

– /etc/my.cnf

– 能够參考 /usr/share/mysql 下的範例

● 既然有 query_cache 就別浪費

● 使用 EXPLAIN 去阐明你的 SQL 語法 .



33當更新到 MySQL4.1 常見問題



● 為什麼我的資料抓出來都是

● 為什麼在 phpMyAdmin2.6 中看到的都是亂碼

● 為何使用 myqldump 的資料庫都是亂碼



34统统都是多國語系增援惹的禍



● 4.1 後需要設定資料庫與 client 編碼

– 設定好資料庫預設語系

● /etc/my.cnf

– [mysqld]

– default-character-set=utf8

– character-set-server = utf8

– collation-server = utf8_general_ci

● 假如系統都跑 utf8

– init_connect='SET NAMES utf8′

– default-character-set = utf8

– default-collation = utf8_general_ci

– PHP 連線 MySQL 後請設定 Client 編碼

● 當資料庫連線後送出 'set names utf8'

– $db->Execute('SET NAMES utf8');

– mysql_query('SET NAMES utf8');



35必然要用 UTF8 嗎 ?



● 不用然要用 UTF8

● 資料庫或是資料表編碼指定

● 資料庫

– CREATE DATABASE `MyTABLE` DEFAULT CHARACTER SET big5

COLLATE big5_chinese_ci;

● 資料表

– CREATE TABLE `myTable` (

– ..... etc ....

– ) ENGINE=MyISAM DEFAULT CHARSET=big5 ;

● 儘量讓 Server 跟 Client 都用沟通的 Char

– 若不同的 Character MySQL 會試著幫忙轉換

– 比方能够同一套 Database 資料 (utf8)

– 同時供给 big5 跟 gb2312 的 Client.

● 但是部分的轉換會失敗 , 以是會有像是漏字或 ?? 產生 36



匯出匯入語系設定



● 大部分的人會用 mysqldump 備份資料

– mysql4.1 之前你能够不指定語系

– mysql4.1 以後務需要指定語系

– mysqldump -u root -p --default-character-set=big5 my

Table

● 从新匯入資料

– 請記的也要加上語系設定



– mysql --default-character-set=big5 -u root -p < myTa ble.sql



37網站與參考文章 (1)



● PHP

– http://www.php.net

● Smarty

– http://smarty.php.net

– Smarty-Lite



● http://www.paullockaby.com/projects/smarty-lig ht/

● PEAR

– http://pear.php.net

● TBS – TinyButStrong

– http://www.tinybutstrong.com



38網站與參考文章 (2)



● ADOdb

– http://adodb.sf.net

– ADOdb-lite

● http://adodblite.sf.net/

● MySQL

– http://www.mysql.com

● 中文參考網站

– http://www.twpug.net

– http://www.php5.idv.tw



39PHP Command line scripting



● 假如你沒有學 Shell Script 的編寫

● 假如你像我一樣根本上最熟的就是 PHP



● 或許你能够考慮用 PHP 寫 Command line scri pting



40PHP Command line scripting



● 需要些什麼

– 可執行的 PHP 執行檔

● 比方 Mandriva 是供给 php-cli 的套件

– 還有你要知道執行檔放在那

● Mandriva 放在 /usr/bin/php

● 怎麼寫 ?

– 就跟網頁程式一樣

● 語法 , 可用的函式 , 輸出 ~ 都一樣



41PHP Command line scripting



● 怎麼執行呢 ?

– 直接 [shell#] PHP ScriptFileName 去執行

– 在檔案開頭加上 #!/usr/bin/php -q

● 記的檔案要 chmod +x 喔

● 還有什麼要注重的 ?

– 執行時 include 的路徑

● 建議這類的檔案使用絕對路徑 include

● 特别當該 script 是要放入 crontab 時

– 程式的輸出或許應該要去掉 html



42如何邁向更進階 ?



● Framework 的學習

● Framework 的方针

– 簡化開發流程

– 加速效率

– 專注法式處理邏輯,而不是技術問題。

● Framework 的缺點

– 學習曲線太長

– 初學者就學習 Framework 轻易忽视基礎技術



43幾個推薦的 Framework



● CakePHP

– 參考 Ruby on Rails

– 較其他 frameword 輕量化

● php.MVC

– 參考 Java 的 Struts

● 今朝樂多日誌 (Blog.yam.com) 使用

● Seagull

– 使用 PEAR 程式庫

● PRADO

– Zend 獲獎作品 , 事宜驅動形式

– Only PHP5

本文公布于北京网站创立公司尚品中国http://www.sino-web.net/

免责声明:本文内容由互联网用户自发贡献自行上传,本网站也不承担相关的法律责任。如果您发现本文章中有涉嫌抄袭的内容,请发送邮件至:sales@sznetsoft.com或者至电给本网站进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权的内容。
相关信息
  • QQ好友
  • QQ空间
  • 腾讯微博
  • 新浪微博
  • 人人网
  • 豆瓣网
  • Facebook
  • Twitter
  • linkedin
  • 谷歌Buzz


线

网软通在线


在线客服: 点击这里给我发消息                        

1231.jpg

留言内容