PHP는 유연한 작성과 빠른 실행이라는 장점으로 인해 효율적인 네트워크 프로그래밍 언어로 빠르게 웹 프로그래머가 선호하는 언어가 되었습니다. 얼마 전 권위 있는 조사에 따르면 현재 웹사이트의 31.6%가 PHP를 주요 서버측 프로그래밍 언어로 사용하고 있는 것으로 나타났습니다.
하지만 PHP 프로그래밍 마스터가 되기는 쉽지 않습니다. 많은 사람들이 상상하는 것과는 달리 몇 가지 간단한 코드를 빠르게 작성하여 복잡한 문제를 해결할 수 있다면 진정한 PHP 프로그래밍 마스터는 다른 많은 문제도 고려해야 합니다. 다음 세 가지 지침은 성숙한 PHP 프로그래머가 프로그래밍에 있어서 먼저 따라야 할 지침입니다.
1. 게으름은 금물
2. 아름다운 코드 작성
3. 프로그래밍의 속도가 아닌 프로그램의 속도를 추구
1. 게으름은 금물
게으른 프로그래머이신가요? ? 이 아이디어는 정말 이상해요! 왜냐하면 아마도 세계에서 가장 바쁜 사람들은 컴퓨터 프로그래머일 것이기 때문입니다. 그러나 프로그래머가 너무 바쁘기 때문에 프로그래밍할 때 게으른 법을 배워야 합니다.
프로그래머에게는 두 가지 게으른 방법이 있습니다. 첫째, 다른 사람이 이미 만든 프로그램 코드를 과감하게 사용하고 이 코드를 자신의 프로그램이나 프로젝트에 통합하는 것입니다. 두 번째는 나중에 프로그램을 작성할 때 쉽게 사용할 수 있는 함수 라이브러리를 구축하기 위해 몇 가지 유용한 코드를 작성하는 것입니다. 이렇게 하면 반복적인 작업이 많이 줄어들고 자연스럽게 게으름이 줄어듭니다.
이 두 가지 게으른 방법은 PHP 프로그래머에게 매우 적합합니다.
우선 PHP는 자유롭고 개방적인 환경에서 태어나고 성장한 언어입니다. 전 세계에는 PHP의 완벽함을 위해 끊임없이 노력해 온 수천 명의 프로그래머가 있으며, 그들은 또한 자신의 독창성과 자신이 작성한 코드를 다른 사람들과 기꺼이 공유하고자 합니다. 일부 PHP 웹사이트, 메일링 리스트, 뉴스 그룹에서 매일 훌륭한 프로그램 코드를 많이 찾을 수 있습니다. 이렇게 말함으로써 나는 다른 사람들이 당신을 위해 코드를 작성해 줄 때까지 하루 종일 기다리라고 권유하는 것이 아니라 "위대한 사람들의 어깨 위에 서서" 다른 사람들의 프로그램 코드를 스마트하게 적용하는 것을 충분히 홍보할 수 있습니다. 많은 시간을 절약해 보세요. 둘째, PHP에서는 자신만의 함수 라이브러리를 쉽게 구축할 수 있어 나중에 프로그램을 작성할 때 많은 수고를 덜 수 있습니다.
아래 작성자는 몇 가지 일반적인 기능을 소개합니다. 이러한 기능 중 일부는 인터넷의 일부 오픈 소스 프로젝트에서 가져온 것이며 일부는 메일링 목록에서 선택했습니다. 자신의 라이브러리에 추가할 수 있다면 조만간 그 혜택을 누리게 될 것입니다.
1. 일반 데이터베이스 처리 기능
다른 CGI 기능에 비해 PHP의 장점 중 하나는 매우 강력한 데이터베이스 처리 기능을 가지고 있다는 것입니다. 그러나 PHP에서는 다양한 데이터베이스를 처리하기 위해 일부 특정 기능이 사용되며 일반적인 데이터베이스 처리 기능이 부족합니다. 이는 프로그램 코드의 이식성을 크게 감소시켜 프로그래밍 초보 친구들에게도 많은 불편을 안겨줍니다.
인터넷에서는 많은 프로그래머들이 클래스를 캡슐화하여 이 문제를 해결했습니다. 그들은 Linux 세계에서 널리 사용되는 Mysql이든 Windows 플랫폼에서 널리 사용되는 SqlServer이든 모든 인기 있는 데이터베이스를 처리하기 위한 통합 함수를 작성했습니다. 개인적으로 이러한 기능을 즐겨 사용하는 이유는 데이터베이스 연결이나 데이터베이스 핸들 등 복잡한 사항을 고려할 필요 없이 "query", "next_record" 등의 간단한 기능을 바로 사용할 수 있기 때문입니다. 어떤 데이터베이스를 사용하고 있는지 생각해 보세요. .
이러한 기능이 필요한 경우 다음 URL을 방문하여 얻을 수 있습니다.
http://phplib.netuse.de/
http://phpclasses.UpperDesign.com/browse.html /package /20
http://phpdb.linuxbox.com/
2. 변수 디버깅 기능
PHP 프로그램 디버깅은 항상 골치 아픈 일이었습니다. VB와 같은 고급 언어와는 다릅니다. . Linux나 DOS 환경에서 직접 실행할 수 있는 Perl과 달리 통합된 컴파일 및 디버깅 환경이 있습니다. 실제로 echo 문을 유연하게 사용하여 PHP 디버깅을 완료할 수 있습니다.
다음 함수를 사용하면 언제든지 프로그램의 모든 변수의 유형과 값을 확인할 수 있습니다.
function ss_array_as_string (&$array, $column = 0) {
$str = "Array(
n";
while(list($var, $val) = Each($array) ){
for ($i = 0; $i $str .= " "
}
$str .= $var. ==>
$str .= ss_as_string($val, $column+1)."
n"
}
for ($i = 0; ; $column; $i++){
$str .= " "
}
return $str.)
}
function ss_object_as_string (&$object, $column = 0) {
if (empty($object->classname)) {
return "$object";
}
else {
$str = $object->classname."(
n";
while (list(,$var) = Each($object->percious_slots )) {
for ($i = 0; $i $str .= " "
}
글로벌 $$var;
$str .= $var. ==> ($i = 0; $i $str .= " "
}
return $str.);
}
}
function ss_as_string (&$thing, $column = 0) {
if (is_object($thing)) {
return ss_object_as_string($thing, $column);
}
elseif (is_array($thing)) {
return ss_array_as_string($thing, $column);
}
elseif (is_double($thing)) {
return "Double(".$thing.")";
}
elseif (is_long($thing)) {
return "Long(".$thing.")";
}
elseif (is_string($thing)) {
return "String(".$thing.")";
}
else {
return "알 수 없음(".$thing.")";
}
}
需要的时候,程序中简单地加入下面的一条代码即可查看程序中的所使用变weight(包括数组화对象) 类型 와 值 :
echo ss_as_string($my_variable);
사용 중인 하단에 있는 내용은 다음과 같습니다:
echo ss_as_string($GLOBALS);
3. 控果能够方便地控数
调试PHP程序的另外一种要要的要要要就是查看Log信息。别以及Log信息的显示内容,将会给程序调试带더 많은 정보를 얻을 수 있습니다. 하단에는 더 많은 정보가 있습니다.
$ss_log_level = 0;
$ss_log_filename = /tmp/ss-log;
$ss_log_levels = 배열(
NONE => 0,
ERROR => 1,
INFO => 2,
DEBUG => 3);
함수 ss_log_set_level ($level = ERROR) {
전역 $ss_log_level;
$ss_log_level = $레벨;
}
function ss_log ($level, $message) {
global $ss_log_level, $ss-log-filename;
if ($ss_log_levels[$ss_log_level] < $ss_log_levels[$level]) {
// 不显示Log信息
false를 반환합니다.
}
$fd = fopen($ss_log_filename, "a+");
fputs($fd, $level. - [.ss_timestamp_pretty().] - .$message."n");
fclose($fd);
true를 반환합니다.
}
function ss_log_reset () {
global $ss_log_filename;
@unlink($ss_log_filename);
}
상위 화면에 있는 Log级别变weight.被记录和显示出来。例如,程序中加入如下의 一条语句:
ss_log_set_level(INFO);
PHP를 실행하면 오류와 정보가 로그에 표시되어 디버그할 수 있습니다.또한 표시되는 정보 내용을 다음과 같이 설정할 수도 있습니다.
ss_log(ERROR, "testing level ERROR")
ss_log(INFO, "testing level INFO"); (DEBUG, "테스트 수준 DEBUG")
다음 명령문을 사용하여 언제든지 LOG 정보를 삭제할 수도 있습니다:
ss_log_reset()
4. 속도 테스트 기능
코드를 최적화하려면 코드의 실행 시간을 테스트하여 최상의 코드를 선택하는 방법이 필요합니다. 다음 함수는 코드를 실행하는 데 필요한 시간을 테스트할 수 있습니다.
function ss_timing_start ($name = default) {
global $ss_timing_start_times;
$ss_timing_start_times[$name] =explore( , microtime());
}
function ss_timing_stop ($name = 기본값) {
global $ss_timing_stop_times;
$ss_timing_stop_times[$name] =explore(, microtime())
}
function ss_timing_current ( $name = 기본값) {
전역 $ss_timing_start_times, $ss_timing_stop_times;
if (!isset($ss_timing_start_times[$name])) {
return 0
}
if (! isset ($ss_timing_stop_times[$name])) {
$stop_time =explore(, microtime());
}
else {
$ss_timing_stop_times[$name]; }
$current = $stop_time[1] - $ss_timing_start_times[$name][1];
$current += $stop_time[0] - $ss_timing_start_times[$name][0]
return $ current;
}
이제 모든 코드의 실행 시간을 쉽게 확인할 수 있습니다. 위 기능을 사용할 때 여러 타이머를 타이머로 설정하기만 하면 됩니다. 이름은 그럴 것이다.
5. 데이터베이스 작업 디버깅 및 최적화
데이터베이스의 경우 실행 속도가 중요합니다. 많은 책과 기사에서 데이터베이스를 빠르게 실행하는 방법을 가르치지만 모든 방법은 실제로 테스트되어야 합니다. 다음으로, PHPLib 함수 라이브러리의 query() 함수와 위에서 소개한 함수들을 결합하여 새로운 query() 함수를 작성하겠습니다. 원래 함수와 비교하면 이 함수는 실행 시간 모니터링 기능을 추가합니다.
함수 쿼리($Query_String, $halt_on_error = 1) {
$this->connect();
ss_timing_start()
$this->Query_ID = @mysql_query($Query_String, $this->Link_ID);
ss_timing_stop();
ss_log(INFO, ss_timing_current().Secs - .$Query_String)
$this->Row = 0; ->Errno = mysql_errno();
$this->Error = mysql_error();
if ($halt_on_error && !$this->Query_ID) {
$this->halt( "잘못된 SQL: ".$Query_String)
}
return $this->Query_ID
}(계속)
이상은 용병왕 여대통령의 개인 마스터를 비롯해 PHP 마스터가 되기 위한 길(1)을 소개한 내용입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.