> php教程 > PHP开发 > PHP 마스터로 가는 길 (1)

PHP 마스터로 가는 길 (1)

黄舟
풀어 주다: 2016-12-17 09:53:05
원래의
1176명이 탐색했습니다.

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" ; ;   ";
}
$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. ==> ; 
  $str .= ss_as_string($$var, 컬럼+1)." 
n"; ($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. 로그를 만드는 방법은 다음과 같습니다.
别以及Log信息的显示内容,将会给程序调试带더 많은 정보를 얻을 수 있습니다. 하단의 인터페이스는 더 많은 정보를 제공합니다.
  $ss_log_level = 0; 
  $ss_log_filename = /tmp/ss-log; 
  $ss_log_levels = array( 
  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 () { 
  전역 $ss_log_filename; 
  @unlink($ss_log_filename); 
  } 
  상위 화면에 있는 Log级别变weight.被记录和显示出来。例如,程序中加入如下의 一条语句: 
  ss_log_set_level(INFO); 
  那么, 运行 PHP程序时, 只有ERROR and INFO级别的 LOG信息才能被记录 및 显示别来, DEBUG 信息则被忽略了. 외부에서 나는们还可以设定显示的信息内容,其语句如下: 
  ss_log(ERROR, "테스트 수준 ERROR"); 
  ss_log(INFO, "테스트 수준 INFO"); 
  ss_log(DEBUG, "테스트 수준 DEBUG"); <… 
  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 {
$stop_time = $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() 함수를 작성하겠습니다. 원래 함수와 비교하면 이 함수는 실행 시간 모니터링 기능을 추가합니다.
function query($Query_String, $halt_on_error = 1) {
$this->connect()
ss_timing_start(); $this->Link_ID)
ss_log(INFO, ss_timing_current().Secs - .$Query_String); ->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 중국어 홈페이지(www.php.cn)를 주목해주세요!



관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿