Hãy đăng ký thành viên để có thể dễ dàng trao đổi, giao lưu và chia sẻ về kiến thức đồ họa.
  1. Hãy đăng ký subscribe kênh Youtube mới của Việt Designer tại địa chỉ: Youtube.com/VietDesignerChannel để theo dõi các video về thiết kế đồ họa. Do trước đó kênh cũ bị Youtube quét không rõ lý do, trong thời gian chờ kháng cáo nếu các bạn thấy video trên diễn đàn bị die không xem được thì có thể vào kênh mới để tìm xem video sơ cua nhé.
    Loại bỏ thông báo

Một số quy tắc trong CakePHP Framework

Chủ đề thuộc danh mục 'HTML - CSS - JS - PHP - ASP' được đăng bởi nuongitq, 5/6/15.

Lượt xem: 6,103

  1. nuongitq Mới đăng kí

    Tiếp tục với series CakePHP Framework, trong bài này chúng ta sẽ đi tìm hiểu một số quy tắc trong CakePHP Framework giúp cho các bạn có thể nắm bắt và sử dụng CakePHP một cách linh hoạt nhất.

    9Mol3fc.png
    Quy tắc đặt tên file, tên class
    • Tên File sử dụng chữ in thường và phân cách các từ bằng dấu gạch dưới (_) ví dụ: my_file. php
    • Tên Class phải viết hoa chữ cái đầu tiên của từ ví dụ: MyClass
    Quy tắc trong Model và Cơ sở dữ liệu (CSDL)
    • CakePHP không hỗ trợ khóa chính gồm nhiều cột. Nếu bạn muốn thao tác trực tiếp kết nối (join) các bảng, hãy truy vấn trực tiếp hoặc thêm một khóa chính thay cho khóa nhiều cột.
    • Tên bảng tương ứng với các model của CakePHP ở dạng số nhiều và sử dụng gạch dưới (_). Ví dụ ứng với model CategoriesProducts là categories_products. Bạn có thể dùng thư viện Inflector có sẵn trong CakePHP để kiểm tra dạng số ít/số nhiều của các từ.
    • Các khóa ngoại trong các quan hệ có tên mặc định là số ít của tên bảng kèm theo_id ở cuối cùng. Ví dụ với quan hệ NewsCategory có nhiều News, bảng news sẽ có khóa ngoại đến bảng news_categories lànews_category_id.
    • Các bảng liên kết được sử dụng trong quan hệ nhiều-nhiều đặt tên bằng cách kết nối các tên model theo thứ tự abc, vì vậy tên đúng sẽ là apples_zebras chứ không phải là zebras_apples. Do đó, ta phải thêm một khóa khác có tên là id
    • Khóa chính mặc định trong CakePHP là cột id, kiểu int, tự tăng. Tuy nhiên, bạn cũng có thể định nghĩa lại khóa chính cho bảng thông qua biến $primaryKey trong model. Thay cho việc sử dụng kiểu int, auto-increment làm khóa chính, bạn có thể sự dụng char(36) hoặc binary(36), khi đó CakePHP sẽ tự động tạo ra UUIDs để làm khóa khi ta thêm mới một record. UUID là một chuỗi gồm 32 byte, tương ứng với 36 ký tự.
    Quy tắc trong Controllers
    • Tên lớp của controller đặt theo dạng số nhiều.
    • Tuân theo CamelCased (viết hoa chữ cái đầu tiên của mỗi từ) và cuối tên phải có chữ “Controller”.
    Ví dụ: Tạo một controller có tên “products” thì class sẽ có tên là ProductsController.
    PHP:
    <? php
       
    Class ProductsController extends AppController{
         
    //Code...
       
    }
    ?>
    Khi một phương thức trong Controller được đặt tên bắt đầu với với dấu “_”ở phía trước, bạn sẽ không thể truy xuất nó từ bên ngoài mà chỉ có thể truy xuất trong controller đó (hay phạm vi là private).

    Ví dụ:
    PHP:
    <? php
      
    Class ProductsControllers extends AppController{
        function 
    index(){
          
    //Code...
        
    }

        function 
    _get_product(){
          
    //Code...
        
    }

        function 
    viewProduct(){
          
    $this->_get_product();
        }
      }
    ?>
    Quy tắc trong Views

    • Giả sử trong Controller ta có controller ProductsController gồm 2 function get_all() và get_a_record(). Thì trong views (trong thư mục app/view/products ) ta cũng phải có 2 file get_all.ctp và get_a_record.ctp.

    • Mặc định, nếu trong controller ProductsController có phương thức view(), khi gọi function view() trên trình duyệt thì Controller sẽ tìm file view.ctp trong app/views/news/view.ctp
    * Tuy nhiên, để dễ dàng hơn trong việc hoc PHP, bạn có thể gọi một file view khác không phải là view.ctp bằng lệnh:
    PHP:
    <? php
       $this
    ->render('ten_view');
    <?

    ...
    Phạm Hữu Dư thích bài viết này

Ủng hộ diễn đàn