27
4006-5666-83
当前位置:首页 > 资讯 > 建站知识

为什么使用php,php网站制作经验

2012-07-20 酷站科技
大綱
● 認識 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</a>',$url,$target,$name);
● printf('a href='%s' target='%s'>%s</a>',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.bjkuzhan.com">来源于申明:以上内容一部分(包括照片、文本)来自互联网,若有侵权行为,请立即与本网站联络(010-57218159)。
如没特殊注明,文章均为酷站科技原创,转载请注明来自http://www.bjkuzhan.com/jianzhanzhishi/4004.html
联系专业的商务顾问,制定方案,专业设计,一对一咨询及其报价详情
服务热线服务热线 4006-5666-83
联系我们 contact us
4006-5666-83
400-6566-683 — 海淀营业部
400-6566-683 — 昌平营业部
+

酷站科技为你提供上门/网站策略方案

留下联系方式,我们将会在一个工作日内与你联系

隐私条款信息保护中,请放心填写