Hướng dẫn how to organize php code - cách tổ chức mã php

Khi bắt đầu với PHP, nó có thể khó khăn để tìm ra cách tốt nhất để tổ chức một dự án. Nếu bạn đã từng bị nhầm lẫn với nơi đặt hình ảnh, thư viện bên ngoài hoặc giữ logic của bạn tách biệt với bố cục của bạn, thì hãy xem các mẹo này; Họ sẽ đưa bạn đi đúng hướng.

Hướng dẫn how to organize php code - cách tổ chức mã php

Chi tiết hướng dẫn

  • Chương trình: PHP/dự án: PHP/Projects
  • Phiên bản 1: 1
  • Khó khăn: Dễ dàng Easy
  • Thời gian hoàn thành ước tính: 20 phút 20 minutes

Cấu trúc thư mục

Tôi muốn nói rằng điều số một trong việc đưa dự án của bạn lên và chạy nhanh chóng là có một cấu trúc thư mục vững chắc mà bạn có thể sử dụng lại cho nhiều dự án. Nếu bạn đang sử dụng một khung, thông thường nó sẽ cung cấp một cấu trúc để sử dụng, nhưng trong kịch bản này, chúng tôi đang làm việc trên một trang web hoặc ứng dụng đơn giản.

Hướng dẫn how to organize php code - cách tổ chức mã php

Phá vỡ

  • Bạn có thể rất quen thuộc với cấu trúc

    
    
    
    
    	
    	Simple Site
    
    
    
    
    2. Đây là nguồn gốc tài liệu trong đó tất cả các tệp công khai của bạn được truy cập (
    
    
    
    
    	
    	Simple Site
    
    
    
    
    3 được truy cập tại
    
    
    
    
    	
    	Simple Site
    
    
    
    
    4).

    • IMG - Tất cả các tập tin hình ảnh của bạn. Tôi quyết định phân chia hình ảnh nội dung từ hình ảnh bố cục.
    • CSS - Tất cả các tệp CSS của bạn.
    • JS - Tất cả các tập tin JavaScript của bạn.
  • Thư mục

    
    
    
    
    	
    	Simple Site
    
    
    
    
    5 phải chứa tất cả các thư viện bên thứ 3, thư viện tùy chỉnh, cấu hình và bất kỳ mã nào khác hoạt động như một tài nguyên trong dự án của bạn.

    • Config.php - Tệp cấu hình chính. Nên lưu trữ các cài đặt rộng rãi trang web.
    • Thư viện - Vị trí trung tâm cho tất cả các thư viện tùy chỉnh và bên thứ ba.
    • Mẫu - Các thành phần có thể tái sử dụng tạo nên bố cục của bạn.

Tệp cấu hình

Là nhà thiết kế và nhà phát triển mục tiêu chính của chúng tôi là làm càng ít công việc càng tốt. Một cách để đạt được mục tiêu này là với các tệp cấu hình. Để có được ý tưởng tốt hơn về những gì tệp cấu hình nên kiểm tra ví dụ này.

 array(
		"db1" => array(
			"dbname" => "database1",
			"username" => "dbUser",
			"password" => "pa$$",
			"host" => "localhost"
		),
		"db2" => array(
			"dbname" => "database2",
			"username" => "dbUser",
			"password" => "pa$$",
			"host" => "localhost"
		)
	),
	"urls" => array(
		"baseUrl" => "http://example.com"
	),
	"paths" => array(
		"resources" => "/path/to/resources",
		"images" => array(
			"content" => $_SERVER["DOCUMENT_ROOT"] . "/images/content",
			"layout" => $_SERVER["DOCUMENT_ROOT"] . "/images/layout"
		)
	)
);

/*
	I will usually place the following in a bootstrap file or some type of environment
	setup file (code that is run at the start of every page request), but they work 
	just as well in your config file if it's in php (some alternatives to php are xml or ini files).
*/

/*
	Creating constants for heavily used paths makes things a lot easier.
	ex. require_once(LIBRARY_PATH . "Paginator.php")
*/
defined("LIBRARY_PATH")
	or define("LIBRARY_PATH", realpath(dirname(__FILE__) . '/library'));
	
defined("TEMPLATES_PATH")
	or define("TEMPLATES_PATH", realpath(dirname(__FILE__) . '/templates'));

/*
	Error reporting.
*/
ini_set("error_reporting", "true");
error_reporting(E_ALL|E_STRCT);

?>

Đây là một tệp cấu hình thả vào cơ bản. Một mảng đa chiều phục vụ như một cấu trúc linh hoạt để truy cập các mục cấu hình khác nhau như thông tin xác thực cơ sở dữ liệu.

  • DB - Lưu trữ thông tin xác thực cơ sở dữ liệu hoặc dữ liệu khác liên quan đến cơ sở dữ liệu của bạn.
  • Đường dẫn - Các đường dẫn thường được sử dụng đến các tài nguyên khác nhau cho trang web của bạn.
    • nhật ký tệp
    • Tải lên thư mục
    • tài nguyên
  • URL - Lưu trữ URL có thể thực sự tiện dụng khi tham khảo các tài nguyên từ xa trên toàn trang web của bạn.
  • Email - Lưu trữ gỡ lỗi hoặc email quản trị viên để sử dụng khi xử lý lỗi hoặc trong các hình thức liên hệ.

Sử dụng các hằng số cho các đường dẫn thường được sử dụng bao gồm các câu lệnh (





	
	Simple Site



6 hoặc




	
	Simple Site



7) một cách dễ dàng và nếu đường dẫn thay đổi, bạn sẽ chỉ cần cập nhật nó ở một nơi.

Sử dụng các tệp cấu hình khác nhau cho nhiều môi trường

Bằng cách sử dụng các tệp cấu hình khác nhau cho nhiều môi trường, bạn có thể có các cài đặt có liên quan tùy thuộc vào môi trường hiện tại. Có nghĩa là, nếu bạn sử dụng thông tin xác thực cơ sở dữ liệu khác nhau hoặc các đường dẫn khác nhau cho từng môi trường, bằng cách thiết lập các tệp cấu hình tương ứng, bạn đảm bảo rằng mã của bạn sẽ hoạt động mà không gặp rắc rối khi cập nhật trang web trực tiếp của bạn. Điều này cũng cho phép bạn có các cài đặt báo cáo lỗi khác nhau dựa trên môi trường hiện tại. Không bao giờ hiển thị lỗi trên trang web trực tiếp của bạn! Hiển thị lỗi trên trang web trực tiếp có thể hiển thị dữ liệu nhạy cảm với người dùng (chẳng hạn như mật khẩu).

Bố cục

Các mẫu có thể tái sử dụng là một trình tiết kiệm thời gian lớn khác. Có một số thư viện tuyệt vời để tạo khuôn mẫu (như Smarty) và tôi luôn khuyến khích sử dụng một thư viện như vậy thay vì phát minh lại bánh xe. Các thư viện này cung cấp rất nhiều chức năng (như các phương thức trợ giúp để định dạng tiền tệ và địa chỉ email xua tan). Vì đây là một trang web đơn giản, tuy nhiên chúng tôi không muốn dành thời gian để thiết lập thư viện và sẽ sử dụng các mẫu cơ bản cơ bản nhất. Chúng tôi đạt được điều này bằng cách bao gồm các phần hoặc mô -đun phổ biến vào các trang trang web của chúng tôi; Bằng cách này, nếu chúng ta muốn thay đổi một cái gì đó trong tiêu đề, như thêm một liên kết đến điều hướng toàn cầu, nó được lan truyền trên khắp trang web.

Hướng dẫn how to organize php code - cách tổ chức mã php
Hướng dẫn how to organize php code - cách tổ chức mã php
Hướng dẫn how to organize php code - cách tổ chức mã php

header.php





	
	Simple Site



rightPanel.php

  • PHP
  • HTML
  • CSS

footer.php



index.php

Giả sử rằng chúng tôi đặt tất cả các thành phần bố cục của chúng tôi (tiêu đề, chân trang, bên phải) vào thư mục tài nguyên của chúng tôi theo các mẫu.

Đưa nó đi xa hơn

Mặc dù hệ thống mẫu cơ bản này giúp bạn có một khởi đầu tuyệt vời, bạn có thể đưa nó đi xa hơn. Chẳng hạn, bạn có thể tạo một lớp hoặc chức năng bao gồm tất cả các tệp mẫu và chấp nhận tệp nội dung làm đối số để kết xuất trong bố cục. Bằng cách này, bạn không cần phải giữ các tệp mẫu trong mỗi trang của trang web của bạn, nhưng khá trừu tượng mà logic có nghĩa là thậm chí ít hoạt động hơn trên đường. Tôi sẽ chỉ cho bạn một ví dụ nhanh chóng.

/resources/library/templateFunctions.php

 0) {
			foreach ($variables as $key => $value) {
				if (strlen($key) > 0) {
					${$key} = $value;
				}
			}
		}
	
		require_once(TEMPLATES_PATH . "/header.php");
	
		echo "
\n" . "\t
\n"; if (file_exists($contentFileFullPath)) { require_once($contentFileFullPath); } else { /* If the file isn't found the error can be handled in lots of ways. In this case we will just include an error template. */ require_once(TEMPLATES_PATH . "/error.php"); } // close content div echo "\t
\n"; require_once(TEMPLATES_PATH . "/rightPanel.php"); // close container div echo "
\n"; require_once(TEMPLATES_PATH . "/footer.php"); } ?>

index.php

Điều này giả sử bạn có một tệp có tên Home.php trong thư mục mẫu của bạn hoạt động như một mẫu nội dung.

 $setInIndexDotPhp
	);
	
	renderLayoutWithContentFile("home.php", $variables);

?>

home.php

Home Page

Lợi ích của phương pháp này bao gồm:

  • Sự phân tách lớn hơn của logic và chế độ xem (PHP và HTML). Việc tách các mối quan tâm như thế này làm cho mã sạch hơn và công việc của nhà thiết kế hoặc nhà phát triển trở nên dễ dàng hơn vì họ chủ yếu làm việc với mã tương ứng của họ.

  • Đóng gói logic mẫu thành một hàm cho phép bạn thực hiện các thay đổi về cách mẫu hiển thị mà không cập nhật nó trên mỗi trang của trang web của bạn.

Symlinks

Trên các hệ thống dựa trên UNIX (OS X, Linux) có một tính năng nhỏ gọn gọi là Symlinks (liên kết tượng trưng). Symlinks là các tham chiếu đến các thư mục hoặc tệp thực tế trên hệ thống tập tin. Điều này thực sự tuyệt vời khi bạn có một tài nguyên được chia sẻ, chẳng hạn như một thư viện được sử dụng giữa nhiều dự án. Dưới đây là một vài điều cụ thể bạn có thể làm với Symlinks:

  • Có hai phiên bản của thư mục tài nguyên của bạn. Khi cập nhật máy chủ trực tiếp của bạn, bạn có thể tải các tệp mới nhất của mình vào thư mục tùy ý. Chỉ cần trỏ Symlink vào thư mục mới này ngay lập tức cập nhật cơ sở mã của bạn. Nếu có sự cố xảy ra, bạn có thể ngay lập tức quay lại thư mục (làm việc) trước đó.

  • Tài nguyên chia sẻ dễ dàng được quản lý với các liên kết symlink. Giả sử bạn có một thư viện tùy chỉnh mà bạn đang làm việc, mọi cập nhật cho thư viện bạn thực hiện trong một dự án sẽ có sẵn ngay lập tức trong một dự án khác.

Symlinks vs Hardlinks

Symlinks, hoặc SoftLinks, hoạt động như các tham chiếu đến các đường dẫn đầy đủ trên hệ thống tập tin. Bạn có thể sử dụng SymLinks ở nhiều vị trí và hệ thống tập tin xử lý chúng như thể chúng là tệp thực tế hoặc thư mục mà chúng tham khảo. Mặt khác, các liên kết cứng là con trỏ vào một tệp trên đĩa (nghĩ rằng các phím tắt trong Windows); Họ đưa bạn đến vị trí thực tế của tệp.

Có một vài điều bạn nên xem xét khi sử dụng Symlinks. Cấu hình máy chủ của bạn phải được thiết lập để theo dõi Symlinks. Đối với Apache, điều này được thực hiện trong tệp httpd.conf. Tìm khối thư mục và đảm bảo rằng các tùy chọn tuân theo các liên kết liên kết là có. Nếu không thêm nó và sau đó khởi động lại Apache.


	Options FollowSymLinks
	AllowOverride None

Tạo các liên kết symlink trong OS X

Có 2 cách để tạo các liên kết symlink trong OS X:

  • Thông qua dòng lệnh, điều hướng (CD, thay đổi thư mục) đến thư mục mà bạn muốn symlink được tạo, sau đó sử dụng lệnh sau:

    $: ln -s /path/to/actual/dir targetDir

    Vì vậy, nếu thư viện tùy chỉnh của chúng tôi sống trong

    
    
    
    
    	
    	Simple Site
    
    
    
    
    8, chúng tôi sẽ đến nơi chúng tôi muốn sử dụng thư viện đó
    
    
    
    
    	
    	Simple Site
    
    
    
    
    9 và nhập:

    
    
    
    
    	
    	Simple Site
    
    
    
    
    0

    Lưu ý rằng phương pháp này sẽ hoạt động trong tất cả các hệ điều hành dựa trên UNIX.

  • Sự thay thế là thông qua công cụ tìm kiếm. Bằng cách giữ Alt + CMD trong khi nhấp và kéo tệp, một liên kết symlink (hoặc bí danh trong OS X) trỏ đến tệp được tạo.

Tạo các liên kết symlink trong Windows

Để thực hiện điều này trong Windows, bạn sẽ cần sử dụng lệnh mklink trong dấu nhắc lệnh:





	
	Simple Site



1

Bản tóm tắt

Những lời khuyên này có nghĩa là cho người mới bắt đầu hoặc những người tạo ra các trang web hoặc ứng dụng đơn giản. Lý tưởng nhất là cho các ứng dụng hoặc trang web lớn hơn, bạn sẽ muốn xem xét một cái gì đó nâng cao hơn như kiến ​​trúc MVC và lập trình hướng đối tượng. Tôi khuyến khích bạn nhìn vào những điều này sau khi bạn bị ướt chân và cảm thấy rằng bạn đã vượt xa hầu hết các bước trên. Tôi quyết định không bao gồm kiểm soát nguồn vì nó là một chủ đề khá lớn, nhưng những mẹo này sẽ giúp bạn tổ chức các tệp của mình để kiểm soát nguồn dễ dàng hơn nếu muốn (

  • PHP
  • HTML
  • CSS
0 DIR). Chắc chắn tìm cách sử dụng điều khiển nguồn, như lật đổ hoặc GIT cho tất cả các dự án của bạn.

Hy vọng bạn thấy những lời khuyên này hữu ích khi bắt đầu dự án PHP tiếp theo của bạn. Cảm ơn!

Tài nguyên

  • Động cơ tạo khuôn thông minh
  • Kiến trúc nhiều người
  • MVC
  • Lập trình hướng đối tượng
  • Subversion cho các nhà thiết kế (kiểm soát phiên bản)
  • Symlinks
  • Liên kết cứng
  • Theo dõi chúng tôi trên Twitter hoặc đăng ký vào nguồn cấp dữ liệu RSS của Nettuts để biết thêm các bài viết và bài viết phát triển web hàng ngày.

Bạn có thấy bài đăng này hữu ích?

Hướng dẫn how to organize php code - cách tổ chức mã php

Nhà phát triển web có trụ sở tại Boston, những người chủ yếu sống trong PHP, nhưng thỉnh thoảng phá vỡ mọi thứ trong Objective-C. Thích làm việc với các công nghệ mặt trước như HTML, CSS và JavaScript. Hãy theo dõi tôi trên Twitter hoặc xem blog của tôi.

Tôi nên đặt mã PHP của mình ở đâu?

Một tập lệnh PHP có thể được đặt ở bất cứ đâu trong tài liệu. Tiện ích mở rộng tệp mặc định cho các tệp PHP là ".php". Một tệp PHP thường chứa các thẻ HTML và một số mã tập lệnh PHP.anywhere in the document. The default file extension for PHP files is " .php ". A PHP file normally contains HTML tags, and some PHP scripting code.

Làm thế nào tôi có thể cải thiện mã PHP của mình?

Một số ứng dụng web phổ biến sử dụng PHP là WordPress, Wikipedia & Yahoo ...
Sử dụng các hàm PHP gốc.Thay vì viết các chức năng theo cách thủ công, hãy sử dụng các hàm PHP tích hợp.....
Bật OPCache trên máy chủ PHP.....
Minify tài sản tĩnh & bộ nhớ đệm.....
Nâng cấp lên phiên bản PHP mới nhất.....
Hiểu tắc nghẽn hiệu suất.....
Tối ưu hóa mã ..

Cấu trúc của chương trình PHP là gì?

PHP là ngôn ngữ kịch bản nhúng khi được sử dụng trong các trang web.Điều này có nghĩa là mã PHP được nhúng trong mã HTML.Bạn sử dụng các thẻ HTML để gửi kèm theo ngôn ngữ PHP mà bạn đã nhúng trong tệp HTML của mình - giống như cách bạn sẽ sử dụng các thẻ HTML khác.PHP code is embedded in HTML code. You use HTML tags to enclose the PHP language that you embed in your HTML file — the same way that you would use other HTML tags.

Làm cách nào để quản lý các tệp PHP?

Bạn có thể chỉnh sửa các tệp PHP trong bất kỳ trình xử lý văn bản hoặc trình soạn thảo văn bản nào, nhưng trình xử lý văn bản không được thiết kế để chỉnh sửa mã lập trình.Thay vào đó, hãy sử dụng Trình chỉnh sửa văn bản với hỗ trợ cho việc tô sáng cú pháp, thụt tự động và hoàn thành khung để chỉnh sửa hiệu quả các tệp PHP.use a text editor with support for syntax highlighting, automatic indentation and bracket completion to efficiently edit PHP files.