[KOHANA] Tổng quan về Kohana Framework

Do có một dự án mà nhóm phát triển đang sử dụng framework Kohana, nên mình cũng bắt tay vào tìm hiều. May mắn là Kohana cũng được cộng đồng lập trình PHP và MySQL  đánh giá khá tốt. 

"Nếu có sự so sánh tương quan giữa các PHP Framework. Thì kohana có sự linh hoạt mềm dẻo của zend framework., nhưng lại có sự dễ học, dễ tìm hiểu của codeigniter framework. Nói cách khác, kohana là sự kết hợp giữa 1 nhánh của codeigniter framework và 1 nhánh của zend framework. Vì thế, khi tìm hiểu vềPHP Framework này, đôi khi bạn sẽ cảm thấy ngờ ngợ rằng mình đã gặp và làm ở đâu đó rồi. Tuy có cơ chế giống với Codeigniter và zend, nhưng mỗi lớp trong Kohana Framework đều được tối ưu và sử dụng linh hoạt. Sao cho người dùng dễ sử dụng, dễ phát triển và dễ bảo trì về sau. " theo QHonline

 

Thế thì nhóm phát triển đã đi không phải công nghệ cũ mà đang được quan tâm rất nhiều. tuy nhiên đi tìm hiểu về sự support ở việt nam thì thật ra không có nhiều... Khó khăn đây. Nhưng thôi người ta làm được thì mình cũng phải làm được. Ừ thì tìm hiểu

đầu tiên là HMVC , MVC (Model -View-Control) thì chắc ai cũng hiểu rồi đó là mô hình 3 lớp với 

 

  1. Models (Tầng dữ liệu): là một đối tượng hoặc một tập hợp các đối tượng biểu diễn cho phần dữ liệu của chương trình, ví dụ như các dữ liệu được lưu trong database, dữ liệu từ một hệ thống các ứng dụng khác như legacy system, file system, mail system …
  2. Views (Tầng giao diện) : là phần giao diện với người dùng, bao gồm việc hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn lựa …, để người dùng có thể thêm, xóa. sửa, tìm kiếm và làm các thao tác khác đối với dữ liệu trong hệ thống.. Thông thường, các thông tin cần hiển thị được lấy từ thành phần Models.
  3. Controllers (Tầng điều khiển): chịu trách nhiệm xử lý các tác động về mặt giao diện, các thao tác đối với models, và cuối cùng là chọn một view thích hợp để hiển thị ra màn hình. Trong kiến trúc MVC, view chỉ có tác dụng hiển thị giao diện mà thôi, còn điều khiển dòng nhập xuất của người dùng vẫn do Controllers đảm trách.

thế đấy nhưng HMVC là gì ?  theo http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/ thì  HMVC (Hierarchical-Model-View-Controller) là Cấu trúc MVC phân tầng

Hierarchical-Model-View-Controller pattern

 

HMVC là hướng mở rộng theo kiểu phân tầng của mô hình MVC . mô hình này đưa ra để  giải quyết vấn đề tính khả chuyển khi có nhiều client kết nối vào. Khi đó một MVC này có thể gọi 1 MVC khác... như vậy tính tương tác giữa các xử lý sẽ mở rộng hơn. Khá rắc rối nhỉ. Nhưng đó là công nghệ  hay thì phải học thôi .

Để tìm hiểu thì mình lên http://kohanaframework.org  lấy tài liệu hướng dẫn tại đây(cho phiên bản 3.3) http://kohanaframework.org/3.3/guide/

rồi mình download bản  cài đặt mới nhất (lúc mình viết bài này ) https://github.com/downloads/kohana/kohana/kohana-3.3.0.zip

 ừ thôi đownload và thử xem... giải nén và upload lên host. ở đây mình xài localhost nên chỉ cần chép vào Thư mục www của WAMP thế là kiểm tra thử 

http://localhost/kohana

kết quả: --> hệ thống của mình đảm bảo

Bây giờ ta thử tìm hiểu một tí về cấu trúc của thư mục của kohana

+ Thư mục system là thư mục dùng để chứa thư viện mặc định ban đầu của framework.

+thư mục module chứa những module sẳn có của framework

+ Thư mục application là thư mục dùng để chứa code do chúng ta tạo ra. 
Phần chủ yếu của người lập trình ở đây. Tìm hiểu thêm về thư mục này :

+ Thư mục config: Dùng để chứa các file cấu hình như kết nối CSDL, cấu hình đường dẫn, cấu hình ngôn ngữ,….
+ Thư mục Views: Chứa các file hiển thị thông tin khi tương tác

+Trong Class có

            + Thư mục controllers: Chứa các file controller của ứng dụng.
            + Thư mục Model: Chứa các file thao tác trên CSDL của ứng dụng.

Cái quan tâm của ta đã xong.... Bây giờ thì chỉnh sửa một số thông số trước khi bắt đầu lập trình

  1. Mở tập tin application/bootstrap.php và thực hiện những thay đổi sau:
    • Đặt múi giờ mặc định cho ứng dụng của bạn.
      date_default_timezone_set('Asia/Saigon');
    • Thiết lập địa phương mặc định.
      setlocale(LC_ALL, 'vi_VN.utf-8');
    • Thiết lập base_url trong lời gọi hàm [Kohana::init] để ánh xạ vị trí của thư mục kohana trên máy chủ của bạn liên quan đến gốc tài liệu. ở đây chính ta chỉnh lại là 
    • Kohana::init(array(
    •     'base_url'   => 'http://localhost/kohana/',
      )); 
    • Nếu khi chạy có báo lỗi 

      Kohana_Exception [ 0 ]: A valid cookie salt is required. Please set Cookie::$salt

      thì thêm vào 

      /*

      * Set cookie salt; please change it!

      */

      Cookie::$salt = 'hoaiphan.com';

  2. Đảm bảo rằng các thư mục application/cache và application/logs có thể ghi được bởi máy chủ web.
  3. Kiểm tra cài đặt của bạn bằng việc mở URL mà bạn thiết lập ở base_url trong trình duyệt ưa thích của bạn.

xem thêm tại đây https://github.com/nguyennv/kohana-vietnamese-guide/blob/master/core/guide/kohana/bootstrap.md

Thôi xóa file install.php theo yêu cầu rồi test thử xem nào 

đã xuất hiện 

hello, world!

(còn tiếp) xem link