Bạn có thể sử dụng PHP trong MVC không?

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 trong

  • Trê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;
}
}
9

URL 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ùng

2. 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ào

RewriteEngine 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;
}
}
2

Lư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

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^[.+]$ index.php/$1 [L]
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ằng
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^[.+]$ index.php/$1 [L]
92. Và trước
RewriteEngine 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]
94

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;
}
}
8

Bâ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;
}
}
2

4. 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;
}
}
22

  • Tạo một tệp

    # nginx configuration
    
    location / {
    if [!-e $request_filename]{
    rewrite ^[.+]$ /index.php/$1 break;
    }
    }
    23 và thêm mã này vào đó

    # nginx configuration
    
    location / {
    if [!-e $request_filename]{
    rewrite ^[.+]$ /index.php/$1 break;
    }
    }
    8
  • Tạo một tệp

    # nginx configuration
    
    location / {
    if [!-e $request_filename]{
    rewrite ^[.+]$ /index.php/$1 break;
    }
    }
    24 và thêm tệp này vào đó

    # nginx configuration
    
    location / {
    if [!-e $request_filename]{
    rewrite ^[.+]$ /index.php/$1 break;
    }
    }
    0
  • Tạo một tệp

    # nginx configuration
    
    location / {
    if [!-e $request_filename]{
    rewrite ^[.+]$ /index.php/$1 break;
    }
    }
    25 và thêm tệp này vào đó

    # nginx configuration
    
    location / {
    if [!-e $request_filename]{
    rewrite ^[.+]$ /index.php/$1 break;
    }
    }
    2

Lưu ý rằng

# nginx configuration

location / {
if [!-e $request_filename]{
rewrite ^[.+]$ /index.php/$1 break;
}
}
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
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

    # nginx configuration
    
    location / {
    if [!-e $request_filename]{
    rewrite ^[.+]$ /index.php/$1 break;
    }
    }
    81 và thêm mã này vào đó

    # nginx configuration
    
    location / {
    if [!-e $request_filename]{
    rewrite ^[.+]$ /index.php/$1 break;
    }
    }
    0
  • Tạo một tệp

    # nginx configuration
    
    location / {
    if [!-e $request_filename]{
    rewrite ^[.+]$ /index.php/$1 break;
    }
    }
    82 và thêm mã này vào đó

    # nginx configuration
    
    location / {
    if [!-e $request_filename]{
    rewrite ^[.+]$ /index.php/$1 break;
    }
    }
    1
  • Tạo một tệp

    # nginx configuration
    
    location / {
    if [!-e $request_filename]{
    rewrite ^[.+]$ /index.php/$1 break;
    }
    }
    83 và thêm mã này vào đó

    # nginx configuration
    
    location / {
    if [!-e $request_filename]{
    rewrite ^[.+]$ /index.php/$1 break;
    }
    }
    2

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ế

Làm cách nào để triển khai MVC trong PHP?

Cách xây dựng khung PHP MVC đơn giản .
Giới thiệu. Hôm nay tôi sẽ trình bày cách tạo một ứng dụng PHP đơn giản theo mẫu MVC [Model-View-Controller]. .
MVC có nghĩa là gì?.
Xây dựng một khung PHP MVC đơn giản. .
Tệp cấu hình htaccess. .
Bootstrap khung PHP MVC của bạn. .
Trình tải tự động. .
Kiểu mẫu. .

Tại sao MVC được sử dụng trong PHP?

MVC – Mẫu kiến ​​trúc Model-View-Controller giúp bạn phân cấp mã của mình để bảo trì dễ dàng hơn . Bằng cách tách logic thao tác dữ liệu khỏi các bit xử lý màn hình, bạn sẽ dễ dàng thay đổi mẫu hoặc mã bên dưới mà không cần chạm vào mã khác.

Ngôn ngữ nào hỗ trợ MVC?

Mẫu MVC được sử dụng rộng rãi trong phát triển chương trình với các ngôn ngữ lập trình như Java, Smalltalk, C và C++ .

Framework PHP nào dựa trên kiến ​​trúc MVC?

CakePHP là một khung công tác PHP nguồn mở tuân theo kiến ​​trúc MVC và giúp xây dựng các ứng dụng web một cách nhanh chóng. Nó khá đơn giản để sử dụng, có cấu hình tối thiểu và giúp xây dựng các ứng dụng web giàu tính năng và ấn tượng.

Chủ Đề