我心中的PHP寫法

2021-04-06 13:16:21 字數 2978 閱讀 6403

用php已經有很長一段時間了,雖然水平也就這樣,但今天還是鼓足勇氣,把我自己的一些想法記錄於此。方便自己日後使用。有點亂,等以後再繼續完善。

首先常用的函式,類庫放在乙個公共目錄中,**的配置資訊存放在乙個公共檔案中如config

.php

,條件允許的話,可以放在非web目錄中。

我借鑑了oscommerce的一些寫法,比如將公用檔案放在includes/.

php中。

在很多時候,include_path會搞得人頭痛,因此不如將它取消,全部用自己定義的include_path值

<?

php//

防止直接訪問此檔案if(

eregi("

",

$_server['

php_self

'])) if(

preg_match('

/windows/i',

$_env['

os'

]))

else

require_once('

config.php');

$include_path

=dir_ws_includes

.$include_separator

.dir_ws_includes .'

**arty'.

$include_separator

.dir_ws_includes .'

class'.

$include_separator

.dir_ws_includes .'

pear'.

$include_separator

;ini_set('

include_path',

$include_path

); 

require_once("

function.php");

?>

資料庫連線

最好採用資料庫連線層,如pear

::db,不要直接用具體的php資料連線函式如:mysql_connect等,

如果非要用的話,等有一天你要換資料庫的時候,你就知道了什麼叫。現在php5

.1有了乙個pdo,以後這種情況可能好些。

說到資料庫連線,就要講到sql語句了,因為**的sql語句會出現多次重複使用的情況,因此我將一些通用的sql語句

全部放在了乙個php檔案,然後需要用的時候,就呼叫它們如:

<?

phpdefine('

_sql_categories_by_sid',

"select c.categories_id, c.categories_name from ".

table_categories ."

c inner join ".

table_categories ."

sub_c ".

"on c.categories_id = sub_c.parent_id where sub_c.categories_id = %d limit 1

");   

?>

這樣就避免了資料庫結構有變化的時候,大規模的修改sql語句的情況。

在資料庫資料的入庫和出庫的時候,需要進行處理,這些處理最好中放到單獨的函式中,避免直接用類似於addslashes()之類

的函式來處理,那樣很不靈活,當要增加一些額外的動作時,就需要更改所有使用到它們的地方。

<?

php//

處理傳遞過來的值

$_get

=array_map('

getsafevalue',

$_get

);$_post

=array_map('

getsafevalue',

$_post

); ?>

<?

phpfunction

getsafevalue(

$value)

else

?>

模板用模板的好處,就是在當你要改版面的時候,工作量少一點。我用的是**arty模板,以前在模板中用了很多的模板

自己的邏輯判斷,覺得這樣不好,應該盡量地將這些邏輯判斷交給php來處理,模板只要顯示就可以了:

<%

$variable

%>

另外如果採用div

+css的話,改起版面來就可以更加方便。

如<

div id="

product

"><%

$variable

%>

div>

快取加速

開啟**arty的cache功能,這樣第二次訪問頁面就是訪問接近htm的頁面了,結合gzip壓縮輸出,使訪問速度可以更快一些。

<?

php//

if gzip_compression is enabled, start to buffer the output

if( (

$ext_zlib_loaded

=extension_loaded('

zlib

')) &&(

php_version

>='4

') )

} else

} ?>

<?

php/*

$id: jxyuhua.php,v 1.4 february 26, 2006, 8:24 pm hpdl exp $

*/require_once''

;if(!

$class_**arty

->

is_cached(tpl_name

,$cache_id

)) //

顯示內容

$class_**arty

->

display(tpl_name

,$cache_id

);require_once

dir_ws_includes .'

';

?>

我心中的軟體

我第一次接觸軟體大概是玩家人的手機吧。記得那時手機上有三款極為經典的遊戲 貪吃蛇 推箱子 俄羅斯方塊 小時候的我非常好奇,為什麼會有這麼有趣的乙個世界,通過對按鍵的控制就可以暢遊在另乙個世界中。這比現實世界有趣多了,從此我便迷上了手機遊戲。後來玩的次數多了,便開始注意到手機裡面遊戲之外的東西。比如系...

我心中的租賃

現在跟過去相去,我們的生水平,已有明顯的改善。消費能力,相對以前已有較大提公升。還清楚的記得92的時候,家裡有一台黑白電視機,就相對來說不錯了。95年的時候許多人圍著一台彩色電視機 節目。今天不僅普及了電視機,電冰箱,空調,洗衣機,電腦等都已進入尋常百姓家。但是我們這次不是討論的,購買的問題。近幾年...

我心中的軟體測試

軟體測試行業目前在國內受重視的程度依然很低,很多公司還是認為軟體測試時乙個可有可無的職位,但是更多的公司已經開始認識在軟體測試的重要性,並開始加大在軟體測試方面的投入。軟體測試到底是什麼?很多人可以給出很多的答案,檢驗產品是否達到設計需求,可能這個會是很多人給出的答案。在我看來,軟體測試並不簡簡單單...