Ngày nay các trang web đã trở nên phức tạp hơn và có xu hướng sao chép các trường hợp thực tế. Vấn đề không còn là chỉ phát triển một trang web tĩnh hiển thị hồ sơ công ty của bạn, mà bạn cần tạo một phần mềm thông minh, đã được thử nghiệm và có chức năng có thể tương tác với người dùng của bạn. Nhiệm vụ này không phải là một nhiệm vụ dễ dàng bất kể trình độ của bạn trong lĩnh vực này. Do đó, bạn cần phát triển một số thái độ và quy trình làm việc tốt có thể giúp bạn thực hiện mọi việc đúng thời hạn. Bạn cần các công cụ để tăng tốc độ mà không ảnh hưởng đến chất lượng công việc của bạn
Khung là hộp công cụ có thể trợ giúp tốt trong đó. Ngày nay, làm việc với một framework đã trở nên nổi tiếng đối với bất kỳ nhà phát triển đáng kính nào và có rất nhiều framework giúp bạn có thể dễ dàng lựa chọn để bắt đầu bất kỳ dự án nào.
Tại sao tự tạo một cái?
Đôi khi bạn có thể thấy khó áp dụng một khuôn khổ, có thể do yếu tố thời gian hoặc bạn có thể không cần học thứ khác. Ngoài ra, đối với một số dự án đơn giản hoặc cho mục đích giảng dạy, người ta có thể muốn có một khung làm tại nhà. Tôi cũng coi đây là một bước mở mang tầm mắt giúp bạn nhìn thấy khía cạnh bên trong của một framework.
Ngoài ra, nếu bạn đang học Lập trình hướng đối tượng [OOP] trong PHP những ngày này và bạn đang tìm kiếm một trường hợp sử dụng để áp dụng các kỹ năng của mình, thì đây có thể là một ví dụ tuyệt vời
Và trên cơ sở đó, bạn cần Phát minh lại bánh xe như Philip Walton đã nói
Vì vậy, trong hướng dẫn nhỏ này, tôi sẽ cố gắng hướng dẫn bạn một số bước mà bạn có thể làm theo để có được một khung công tác PHP cơ bản tự chế cho chính mình
1. Đầu tiên chuyển tất cả các yêu cầu thông qua điểm bắt đầu ứng dụng của bạn [chỉ mục. php]
Trong bước này, hãy bắt đầu từ việc tạo tệp
# nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
3 ở thư mục gốc của dự án của bạn. Đặt đoạn mã sau vào bên trongTrên Apache
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^[.+]$ index.php/$1 [L]
trên nginx
# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
Tạo một tệp
# nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
4 ở cùng một nơi với tệp # nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
3 của bạn. Sau đó nhập mã sau vào tệp chỉ mục của bạn
Hãy thử nó bằng cách truy cập vào ứng dụng của bạn như thế này
# nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
6, # nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
7, # nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
8, # nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
9URL có thể khác với URL của bạn. URL của bạn có thể trông giống như
0. Điều quan trọng là thử các URI khác nhau
Từ đây, bạn có thể thấy rằng mọi thứ bạn nhập đều đi qua tệp
# nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
4 của bạn, tệp này sẽ giống như một đường ống. Tại thời điểm đó, bạn có thể quyết định đưa ra bất kỳ quyết định nào về cách xử lý các yêu cầu của người dùng2. Tạo các thư mục để lưu trữ các mô hình, chế độ xem và bộ điều khiển của bạn
Thêm ba thư mục nữa vào thư mục gốc của dự án của bạn và đặt tên cho chúng là
2,
3,
4. Thư mục dự án của bạn sẽ giống như
- dự án của tôi
- Bộ điều khiển/
- người mẫu/
- Lượt xem/
- htaccess
- mục lục. php
3. Xử lý tất cả các yêu cầu. Lộ trình
Trên thực tế có nhiều cách và mọi người có thể tự do sử dụng kỹ thuật phù hợp nhất với trường hợp sử dụng của họ. Hãy làm theo mẫu thiết kế MVC có thể giúp chúng ta dễ dàng có các URL RESTful
Để làm như vậy, chúng ta cần tìm trong yêu cầu phần nào là
5,
6 và
7. Để có được những thứ đó, chúng ta cần xác định luật cho ứng dụng của mình. Luật đó sẽ là sau
8, phần tiếp theo phải là bộ điều khiển và tiếp theo là hành động/phương thức của bộ điều khiển, thì mọi thứ theo sau sẽ được coi là tham số của hành động trước đó. Nó sẽ trông như thế nàoRewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[.+]$ index.php/$1 [L]
9Để làm điều đó, trước tiên hãy xóa tất cả mã khỏi
# nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
4 ngoại trừ thẻ mở PHP RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[.+]$ index.php/$1 [L]
90. Thêm mã sau để cắt yêu cầu thành nhiều phần# nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
2Lưu và thử các URL khác mà chúng tôi đã sử dụng ở trên
Lưu ý phần tử đầu tiên trong
91 không phải là bộ điều khiển của chúng tôi. Bình thường vì URI yêu cầu bắt đầu bằngRewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^[.+]$ index.php/$1 [L]
92. Và trướcRewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^[.+]$ index.php/$1 [L]
92 không có gì, được tính làRewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^[.+]$ index.php/$1 [L]
94RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^[.+]$ index.php/$1 [L]
Thay đổi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[.+]$ index.php/$1 [L]
95 như sau để loại bỏ dấu gạch chéo về phía trước"# nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
8Bây giờ bộ điều khiển của chúng ta là phần tử đầu tiên và chúng ta có hai khả năng, hoặc là
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[.+]$ index.php/$1 [L]
95 là dấu gạch chéo [RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[.+]$ index.php/$1 [L]
92], trong trường hợp đó chúng ta đang ở trang chủ, hoặc chúng ta có một mảng, trong trường hợp đó chúng ta có ít nhất một
5 và/ Trong mẫu thiết kế MVC, bộ điều khiển sẽ xử lý các hành động của người dùng. Vì vậy, chúng ta cần gọi một bộ điều khiển cụ thể mỗi khi có yêu cầu. Hành động của người dùng thường được xác định bởi lệnh gọi URL trong khi nhấp vào liên kết hoặc trong khi gửi biểu mẫu, v.v. Vì vậy, ứng dụng của chúng tôi sẽ lắng nghe những hành động đó và tải bộ điều khiển thích hợp và tất cả các hành động cần thiết
Vì vậy, hãy thay đổi nội dung chỉ mục của bạn bằng cái này
# nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
24. Tạo thêm trang
Trên thực tế, những gì ứng dụng làm là bất cứ khi nào bạn yêu cầu một URL như
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[.+]$ index.php/$1 [L]
99, nó sẽ vào thư mục bộ điều khiển và tìm bộ điều khiển có tên là # nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
20, tìm phương thức có tên là # nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
21 trong bộ điều khiển đó, sau đó sử dụng đối tượng xem để hiển thị nội dung/trang thành . Để tạo một trang, bạn cần tạo bộ điều khiển, mô hình và chế độ xem cho nó. Vì vậy, hãy tạo một số trang bắt đầu từ # nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
22Tạo một tệp
23 và thêm mã này vào đó# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
8# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
Tạo một tệp
24 và thêm tệp này vào đó# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
0# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
Tạo một tệp
25 và thêm tệp này vào đó# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
2# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
Lưu ý rằng
25 có nghĩa là tạo tệp# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
27 trong thư mục# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
3
Bây giờ hãy thử
# nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
6 hoặc bất kỳ url nào trỏ đến thư mục gốc của dự án của bạn. Bạn sẽ thấy thông báo chào mừng. Đó là nóBây giờ hãy thêm một trang
# nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
20. Để tạo trang, bạn sẽ làm điều tương tự chúng tôi đã làm cho trang chủTạo một tệp
81 và thêm mã này vào đó# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
0# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
Tạo một tệp
82 và thêm mã này vào đó# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
1# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
Tạo một tệp
83 và thêm mã này vào đó# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
2# nginx configuration location / { if [!-e $request_filename]{ rewrite ^[.+]$ /index.php/$1 break; } }
Bây giờ hãy thử
# nginx configuration
location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
84 và RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[.+]$ index.php/$1 [L]
99. Bạn sẽ thấy các tin nhắn khác nhau. Đó là tất cảPhần kết luận
Như bạn có thể nhận thấy, từ thời điểm này, bạn có thể dễ dàng làm cho mã này trở nên rất lớn bằng cách thêm nhiều mô-đun và chức năng hơn dựa trên nhu cầu của bạn. Bạn có thể bắt đầu bằng cách làm cho nó sạch hơn chẳng hạn, bạn có thể sử dụng trình soạn thảo để tự động tải các lớp của mình. Bạn dễ dàng thêm nhiều thành phần từ các nhà phát triển khác và có một cơ sở vững chắc
Điều này chủ yếu nhằm mục đích dạy bạn làm bẩn tay trong khía cạnh viết mã này. bằng cách làm như vậy, tôi hy vọng bạn sẽ sử dụng OOP, khám phá một chút về cách thức hoạt động của mẫu MVC, v.v.
Có nhiều cách xử lý vụ việc, sau đây mình giới thiệu một cách. Khi bạn xem xét các framework chuyên nghiệp như Laravel hoặc slim, bạn có thể thấy rằng định tuyến tuyệt vời hơn. Cố gắng tạo ra sự khác biệt hoặc thay đổi mã của bạn thành mã giống như mã của họ
Trong trường hợp bạn không thể làm theo, đây là mã nguồn của tôi, bạn có thể tải xuống. Ngoài ra nếu bạn thích hướng dẫn, vui lòng chia sẻ với người khác
Đừng bỏ lỡ bất kỳ bài đăng nào nữa
Đăng ký nhận bản tin hàng tuần của chúng tôi và nhận nội dung phổ biến nhất của chúng tôi được gửi thẳng đến hộp thư đến của bạn
Đặt mua
vườn bách thú
Tôi bắt đầu phát triển web từ năm 2002 và tôi chưa bao giờ thay đổi nghề nghiệp của mình kể từ đó. Đã xây dựng vô số trang web và Ứng dụng trong khoảng thời gian hơn 10 năm. Tôi nghĩ sẽ rất tuyệt nếu được chia sẻ kinh nghiệm của mình với bạn thông qua các khóa học ngắn hạn được hướng dẫn kỹ lưỡng và thực tế