Hướng dẫn is it good to mix html and php? - trộn html và php có tốt không?

Thường xuyên hơn không, các nhà phát triển PHP mới bắt đầu sẽ tạo ra mã spaghetti trông khủng khiếp & nbsp; rất khó để gỡ lỗi hoặc hiểu. Một trong những lý do chính đằng sau điều này là sự khăng khăng của họ trong việc trộn lẫn logic của ứng dụng của họ với việc trình bày ứng dụng của họ. Khi thời gian trôi qua và nhiều tính năng khác được thêm vào, cơ sở mã trở nên lộn xộn, & nbsp; dễ bị lỗi và không thể sử dụng lại.logic of their application with the presentation of their application. As time goes on and more “features” are added, the code base becomes messy, error-prone and impossible to re-use.

Một ví dụ hay về một số mã spaghetti đang hoạt động:

<?php

echo '<h2>New Users</h2>';

$sql = "SELECT * FROM users ORDER BY date_registered";
$result = mysql_query($sql) or die(mysql_error());

echo '<table class="my-table-class">';
while($row = mysql_fetch_assoc($result)){
    echo '<tr><td>' . $row['username'] . '</td><td>' . $row['date_registered'] . '</td></tr>';
}
echo '</table>';

function random_custom_function($var){
    $var = $var + 1;
    return '<span style="font-weight:bold;">' . $var . '</span>';
}

$sql = "SELECT * FROM table WHERE column = 'test'";
$result = mysql_query($sql) or die(mysql_error());

echo '<div id="test">';
$i = 0;
while($row = mysql_fetch_assoc($result)){
    if($row['type'] == 3){
        echo '<div style="margin-bottom:20px;">' . random_custom_function($row['val']) . '</div>';
        $i++;
    }
    else{
        echo '<div style="margin-bottom:20px;">' . $row['val'] . '</div>';
    }
}

if($i == 0){
    echo '<table>';
    echo '<tr><td>Found none!</td></tr>';
    echo '</table>';
}

Kinh quá! Không chỉ là mã trên khủng khiếp trên mắt, mà còn không cần thiết và dễ bị lỗi! Điều gì sẽ xảy ra nếu một nhà thiết kế cần phải làm việc trên thiết kế của trang? Điều gì sẽ xảy ra nếu anh ấy hoặc cô ấy không thoải mái với PHP?

Đừng lặp lại HTML!

Nếu bạn có kế hoạch thực hiện & nbsp; đường dẫn để phục hồi, thì đây là quy tắc đầu tiên mà bạn nên tham gia. Echo xông ra HTML là khủng khiếp và nó ngăn không cho những người không lập trình lên khả năng làm việc với thiết kế của bạn! Nó cũng ngăn IDE của bạn không thể làm nổi bật các yếu tố, thuộc tính, tên ID và tên lớp của HTML!

Điều này có nghĩa là thay vì làm điều này:

<?php 
echo '<div id="user_profile">';
echo '<h2>' . $user['name'] . '</h2>';
echo '<img src = "' . $user['profile_picture'] . '" class="profile-pic">';
echo '</div>';

Bạn nên làm điều này:

<div id="user_profile">
    <h2><?= $user['name']; ?></h2>
    <img src = "<?= $user['profile_picture']; ?>" class="profile-pic">
</div>

Để tổng hợp sự khác biệt:

  • Nó trông sạch hơn.
  • Bạn có thể thụt đầu vào HTML của bạn.
  • IDES sẽ có thể làm nổi bật HTML.
  • Nó thân thiện với thiết kế hơn, vì sự khác biệt giữa PHP và HTML rõ ràng hơn nhiều.

Ồ, và ở đây, một ví dụ về một vòng lặp:

<?php foreach($entries as $entry): ?>
    <h2><?= $entry['title']; ?></h2>
    <p><?= $entry['description']; ?></p>
<?php endforeach; ?>

Đừng trộn lẫn & nbsp của bạn; logic với bài thuyết trình của bạn!

Có bốn & nbsp; các thuật ngữ mà bạn cần nhận thức được:

  • Logic: Điều này đề cập đến logic kinh doanh của ứng dụng của bạn. Các ví dụ bao gồm các kết nối cơ sở dữ liệu, chức năng, truy vấn SQL, chuyển hướng, xử lý phiên và các phần logic & nbsp khác; kiểm soát luồng của ứng dụng của bạn.: This refers to the business logic of your application. Examples include database connections, functions, SQL queries, redirects, session handling and other pieces of logic that control the flow of your application.
  • Trình bày: Điều này đề cập đến & nbsp; ngoại hình / phía khách hàng của ứng dụng của bạn. Chúng tôi nói về HTML, CSS và trong một số trường hợp, JavaScript.: This refers to the appearance / client-side of your application. We’re talking about HTML, CSS and in some cases, JavaScript.
  • Logic trình bày: Đây là loại logic xác định sự xuất hiện của một phần dữ liệu nhất định. Ví dụ: nếu bạn đang xuất ra danh sách người dùng đã đăng ký, bạn có thể muốn làm nổi bật các tài khoản bị vô hiệu hóa màu đỏ. Loại logic này không kiểm soát luồng ứng dụng của bạn và nó không đóng vai trò nào trong bất kỳ logic kinh doanh nào! Mục đích duy nhất của nó là để kiểm soát bố cục và sự xuất hiện của ứng dụng của bạn!: This is the type of logic that determines the appearance of a certain piece of data. For example, if you are outputting a list of registered users, you might want to highlight disabled accounts in red. This type of logic does not control the flow of your application and it plays no part in any of the business logic! It’s only purpose is to control the layout and appearance of your application!
  • Tách các mối quan tâm: Nói một cách đơn giản, tách biệt các mối quan tâm, là một nguyên tắc thiết kế & nbsp; chia một & nbsp; ứng dụng vào các danh mục của nó, các danh mục liên quan (mối quan tâm). Ví dụ: Mã xử lý các kết nối cơ sở dữ liệu và truy vấn SQL sẽ được giữ tách biệt với phần của ứng dụng & nbsp; xử lý các yêu cầu và chuyển hướng. Trong trường hợp cụ thể này, chúng tôi sẽ giữ cho nó đơn giản bằng cách nói rằng chúng tôi nói về hành động của & nbsp; giữ cho logic của chúng tôi tách biệt với bài thuyết trình của chúng tôi!: Simply put, “Separation of concerns” is a design principle that splits an application up into its relevant “categories (concerns).” Example: Code that handles database connections and SQL queries will be kept separate from the part of the application that handles requests and redirects. In this particular case, we’ll keep it simple by saying that we’re talking about the act of keeping our logic separated from our presentation!

Why?

Tại sao bạn nên tách chúng ra?

  1. Nói chung, kích thước tệp & nbsp; trở nên nhỏ hơn. Không ai muốn mở 4000 dòng logic trộn với HTML.
  2. Bạn không phải lo lắng quá nhiều về các nhà thiết kế làm hỏng hoạt động nội bộ của ứng dụng của bạn. Họ có thể thêm các tính năng thiết kế mà không cần phải xem xét logic kinh doanh.
  3. Nó sạch hơn nhiều và dễ dàng hơn trên mắt.
  4. Lỗi dễ dàng hơn để săn lùng.
  5. Logic doanh nghiệp của bạn & nbsp; sẽ trở nên dễ dàng hơn để sửa đổi (thêm các tính năng mới, v.v.).
  6. Thiết kế lại & nbsp; ít rắc rối hơn nhiều.
  7. Sẽ dễ dàng hơn để tìm thấy một số phần của ứng dụng nếu biết mọi thứ ở đâu.

Một ví dụ về sự tách biệt của các mối quan tâm mà bạn có thể đã sử dụng?

HTML và các kiểu dáng bên ngoài & nbsp; CSS!

Trong kịch bản cụ thể này, HTML xác định cấu trúc, trong khi CSS xác định sự xuất hiện của cấu trúc nói. Bất cứ khi nào bạn cần thay đổi màu hoặc thêm đường viền, bạn có thể mở tệp CSS và thực hiện các thay đổi của bạn. tức là bạn không cần phải chỉnh sửa HTML. Nó là một ly khai hoàn toàn!separatematter!

MVC

Các khung MVC (Mô hình View View, Trình điều khiển) rất phổ biến vì chúng giúp thực thi các nguyên tắc phân tách các mối quan tâm (chúng cũng đi kèm với rất nhiều thư viện và lớp trợ giúp hữu ích). Nói chung, một khung MVC sẽ chia ứng dụng của bạn thành ba phần riêng biệt:

  • Mô hình: Mô hình & NBSP; đại diện cho dữ liệu. Ví dụ: Bảng MySQL & NBSP; hoặc tệp XML.: The Model represents the data. Examples: A MySQL table or an XML file.
  • Xem: Chế độ xem & nbsp; hiển thị dữ liệu (trình bày). Trong hầu hết các trường hợp, xem các tệp sẽ bao gồm HTML và một số logic trình bày cơ bản.: The View displays data (presentation). In most cases, view files will consist of HTML and some basic presentation logic.
  • Bộ điều khiển: Bộ điều khiển chuyển dữ liệu đến chế độ xem. Nó nhận được dữ liệu biểu mẫu từ chế độ xem và nó kiểm soát luồng của ứng dụng của bạn (chuyển hướng, v.v.).: The Controller passes data to the view. It receives form data from the view and it controls the flow of your application (redirects, etc).

Nếu bạn quan tâm đến & nbsp; sử dụng & nbsp; một khung MVC PHP, thì bạn nên kiểm tra một số điều sau đây:

  • Laravel & nbsp; - Vô cùng phổ biến.
  • Symfony & nbsp; - Một khung MVC PHP cực kỳ phổ biến khác.
  • Yii.
  • CakePHP.

Động cơ mẫu

Một cách khác là sử dụng một công cụ mẫu như Twig, sẽ cho phép bạn tách logic của mình khỏi ngoại hình. Trong rất nhiều trường hợp, các công cụ tạo khuôn mẫu này thực sự được sử dụng bên trong một số khung MVC được liệt kê ở trên! Một điều thú vị về Twig là thực sự hỗ trợ xem thừa kế!

Thất bại đó…

Nếu bạn không có thời gian để tìm hiểu về & nbsp; sử dụng khung & nbsp; MVC hoặc một công cụ tạo khuôn, thì ít nhất bạn nên thực hiện một nỗ lực rất lớn để tổ chức ứng dụng của bạn vào các bộ phận / thư mục có liên quan của nó! Ví dụ:

  • Tách HTML của bạn khỏi logic kinh doanh của bạn.
  • Giữ mã kết nối cơ sở dữ liệu của bạn ở một nơi. Sử dụng câu lệnh yêu cầu để đưa nó vào tập lệnh của bạn.
  • Tìm hiểu về lập trình định hướng đối tượng.
  • Cố gắng giữ các truy vấn SQL của bạn được tách ra khỏi các phần của ứng dụng của bạn để xử lý các yêu cầu, chuyển hướng và hình thành dữ liệu.
  • Do & nbsp; không & nbsp; echo out html với php.
  • Giữ các thư mục của bạn được tổ chức
  • Và hầu hết tất cả - hãy nhất quán!BE CONSISTENT!

HTML và PHP có thể hoạt động cùng nhau không?

PHP và HTML tương tác rất nhiều: PHP có thể tạo HTML và HTML có thể chuyển thông tin cho PHP.Trước khi đọc các Câu hỏi thường gặp này, điều quan trọng là bạn học cách truy xuất các biến từ các nguồn bên ngoài.Trang hướng dẫn về chủ đề này bao gồm nhiều ví dụ là tốt.PHP can generate HTML, and HTML can pass information to PHP. Before reading these faqs, it's important you learn how to retrieve variables from external sources. The manual page on this topic includes many examples as well.

Làm cách nào để chạy PHP và HTML cùng nhau?

Bước 1: Trước hết, chúng tôi phải nhập mã HTML trong bất kỳ trình soạn thảo văn bản nào hoặc mở tệp HTML hiện có trong trình soạn thảo văn bản mà chúng tôi muốn sử dụng PHP.Bước 2: Bây giờ, chúng ta phải đặt con trỏ vào bất kỳ thẻ nào của thẻ nơi chúng ta muốn thêm mã của PHP.Và, sau đó chúng ta phải nhập thẻ bắt đầu và kết thúc của PHP.

HTML hay PHP có tốt hơn không?

Trả lời: PHP tốt hơn HTML vì nó mạnh hơn về mặt sử dụng của nó.Dưới đây là sự khác biệt: PHP là ngôn ngữ kịch bản có thể tạo các trang web động khi việc thực thi mã diễn ra trên máy chủ và kết quả được máy chủ trả lại ở định dạng HTML được trình duyệt hiển thị.PHP is better than HTML as it is more powerful in terms of its usage. Given below are the differences: PHP is a scripting language that can generate dynamic web pages as the code execution takes place on the server and the result is returned by the server in HTML format which is displayed by the browser.