PHP bao gồm lớp

Lisa và tôi [Graham] hiện đang sống tại trung tâm đào tạo của chúng tôi ở Melksham - rất vui được gặp các cựu đại biểu ở đây - nhưng hãy kiểm tra trước khi đến. Chúng ta còn lâu mới không hoạt động - đúng hơn là tận hưởng khoảng thời gian mà chúng ta đã nghỉ hưu nhưng vẫn đủ khỏe mạnh về tinh thần và thể chất để hoạt động

Tôi cũng đang hoạt động trong nhiều lĩnh vực khác và vẫn chăm sóc rất nhiều trang web - bạn có thể tìm thấy một chỉ mục [[tại đây]]

Mặc dù việc mô đun hóa mã của chúng ta theo cách chúng ta có là hữu ích, nhưng tốt nhất là mọi trang đề cập đến các sự kiện đều thực hiện điều đó thông qua các đối tượng Sự kiện. Vì vậy, với mục đích bảo trì, tốt nhất là chuyển định nghĩa lớp thành một tệp riêng mà chúng tôi có thể gọi từ các trang khác nhau. Để bắt đầu, hãy tạo một tệp mới—tôi sẽ gọi các đối tượng của tôi. inc, và tôi sẽ đặt nó trong cùng thư mục với showevent. php—và lưu lại. Đặt định nghĩa lớp vào tệp đó, như trong Liệt kê 5

Liệt kê 5—Một tệp định nghĩa lớp riêng biệt [các đối tượng. inc]

eventid = $this_eventid;
      $this->month = $event["eventMonth"];
      $this->day = $event["eventDay"];
      $this->year = $event["eventYear"];
      $this->title = $event["eventTitle"];
      $this->description = $event["eventDesc"];
    }

    // Free resources.
    mysql_free_result [ $results ];

  }
}
?>

Lưu ý rằng toàn bộ phần được đặt trong dấu phân cách và ?>

Để thực sự sử dụng đối tượng, chúng ta cần cung cấp định nghĩa lớp từ bên trong trang. Để làm điều đó, chúng ta có thể sử dụng hàm require[], như trong Liệt kê 6

Liệt kê 6—Làm cho định nghĩa lớp có sẵn [showevent. php]

  require["objects.inc"];

  import_request_variables['pgc', ''];

  $this_event = new Event[$eventid];

  printf [ "

%s

", $this_event->title ]; printf [ "

Date: %s/%s/%s

", $this_event->month, $this_event->day, $this_event->year ]; printf [ "

%s

", $this_event->description ]; printf [ "Edit this event", $eventid ]; ?>

Hàm request[] hoạt động như thể tất cả mã trong các đối tượng. inc đã được bao gồm trong tệp này tại thời điểm đó

Bốn chức năng cho phép bạn bao gồm mã từ một tệp khác. bao gồm [], yêu cầu [], bao gồm_once [] và yêu cầu []. Cả bốn đều có thể lấy một tệp cục bộ hoặc URL làm đầu vào. Sự khác biệt giữa các chức năng bao gồm và yêu cầu là bao gồm[] và bao gồm_once[] chỉ đưa ra cảnh báo nếu không thể truy xuất tài nguyên; . Bởi vì chúng tôi cần định nghĩa lớp để tiếp tục, chúng tôi đang sử dụng yêu cầu []

Các hàm include_once[] và require_once[] rất hữu ích trong các trường hợp nhiều tệp có thể tham chiếu cùng một mã được bao gồm; . Bởi vì một chức năng không thể được xác định lại sau khi nó được khai báo, hạn chế này có thể giúp ngăn ngừa lỗi

Umm… Tôi có xu hướng INCLUDE_ONCE tất cả các tệp cơ sở chứa các lớp phổ biến nhất mà tôi biết mình sẽ cần


# index.php

$fp = @fopen[DOC_ROOT_DIR .'includes.protected', 'r']; 		
	
	$line = '';
	while[!@feof[$fp]] {
		# read file...
		$line .= str_replace["\\r\
", '', @fgets[$fp, 256] /* ...at 256 bytes */ ];
	}
	@fclose[$fp];
	
	$installation 	= explode[';', $line];
	$files 			= explode[',', $installation[0]];
	$classes 		= explode[',', $installation[1]];
	
	# script installation
	for[$num = 0;$num < sizeof[$files];$num++] {
		$getFile 	= [string] $files[$num];
		$getClass 	= [string] $classes[$num];
		#
		@include_once[LIB_ROOT_DIR . $getFile];
		
		if[!class_exists[$getClass]] {
			$component = explode['.', $getClass];
			# error with a file inclusion
			trigger_error['error :: failed to install component: '. $component[0], E_USER_WARNING];
			return false;
		}
	}

Và sau đó, đó là một trường hợp đơn giản chỉ BAO GỒM CÁC CHẾ ĐỘ XEM… ?

Tóm lược. trong hướng dẫn này, bạn sẽ học cách tổ chức các tệp lớp học của mình và tải chúng tự động bằng hàm PHP 

0

Thư mục

9

Hàm

90


# index.php

$fp = @fopen[DOC_ROOT_DIR .'includes.protected', 'r']; 		
	
	$line = '';
	while[!@feof[$fp]] {
		# read file...
		$line .= str_replace["\\r\
", '', @fgets[$fp, 256] /* ...at 256 bytes */ ];
	}
	@fclose[$fp];
	
	$installation 	= explode[';', $line];
	$files 			= explode[',', $installation[0]];
	$classes 		= explode[',', $installation[1]];
	
	# script installation
	for[$num = 0;$num < sizeof[$files];$num++] {
		$getFile 	= [string] $files[$num];
		$getClass 	= [string] $classes[$num];
		#
		@include_once[LIB_ROOT_DIR . $getFile];
		
		if[!class_exists[$getClass]] {
			$component = explode['.', $getClass];
			# error with a file inclusion
			trigger_error['error :: failed to install component: '. $component[0], E_USER_WARNING];
			return false;
		}
	}
4

Để sử dụng hàm

92, bạn có thể bao gồm tệp
  require["objects.inc"];

  import_request_variables['pgc', ''];

  $this_event = new Event[$eventid];

  printf [ "

%s

", $this_event->title ]; printf [ "

Date: %s/%s/%s

", $this_event->month, $this_event->day, $this_event->year ]; printf [ "

%s

", $this_event->description ]; printf [ "Edit this event", $eventid ]; ?>
90 và gọi hàm

96 và đề xuất sử dụng chức năng

92, bạn không cần gọi hàm

90, bạn có thể định nghĩa một hàm tải các lớp từ thư mục

# index.php

$fp = @fopen[DOC_ROOT_DIR .'includes.protected', 'r']; 		
	
	$line = '';
	while[!@feof[$fp]] {
		# read file...
		$line .= str_replace["\\r\
", '', @fgets[$fp, 256] /* ...at 256 bytes */ ];
	}
	@fclose[$fp];
	
	$installation 	= explode[';', $line];
	$files 			= explode[',', $installation[0]];
	$classes 		= explode[',', $installation[1]];
	
	# script installation
	for[$num = 0;$num < sizeof[$files];$num++] {
		$getFile 	= [string] $files[$num];
		$getClass 	= [string] $classes[$num];
		#
		@include_once[LIB_ROOT_DIR . $getFile];
		
		if[!class_exists[$getClass]] {
			$component = explode['.', $getClass];
			# error with a file inclusion
			trigger_error['error :: failed to install component: '. $component[0], E_USER_WARNING];
			return false;
		}
	}
90 và chuyển tên hàm cho hàm

Chủ Đề