SlideShare a Scribd company logo
1 of 13
Download to read offline
CUỘC THI MÙA HÈ SÁNG TẠO 2011




 TÀI LIỆU HƯỚNG DẪN SỬ DỤNG BKTINY
            FRAMEWORK
MÃ SỐ MHST11-15: XÂY DỰNG EXTENSION-
        PORTAL CHO NIMBUS.


     Nhóm sinh viên:         Lê Quang Hiếu
                             Lưu Thị Thùy Nhung
                             Phạm Văn Tân
     Mentor:                 Nguyễn Hữu Đức




                 Hà Nội, tháng 9 năm 2011
Hướng dẫn sử dụng BKTiny Framework

1.Giới thiệu

2.Yêu cầu hệ thống

3.Kiến trúc BKTiny framework

4.Đặc tả chi tiết các lớp
1.Giới thiệu

BKTiny Framework là một PHP Framework được tổ chức theo mô hình
MVC.Sử dụng BKTiny Framework giúp lập trình dự án PHP nhanh hơn, code
trong sáng hơn, dễ quản lý, chỉnh sửa , nâng cấp

2.Yêu cầu hệ thống

    PHP phiên bản 5.3.0 trở lên

    MySQL 5.0 trở lên

    Apache hỗ trợ mod_rewrite và PDO_mysql

3.Kiến trúc BkTiny Framework

3.1 Các đặc điểm của BkTiny Framework

BKTiny Framework có các đặc điểm chính sau:

   - Là một PHP framework : BKTiny Framework giúp lập trình dự án PHP
     nhanh hơn, code trong sáng hơn, dễ quản lý, chỉnh sửa , nâng cấp

   - Sử dụng mô hình MVC: mô hình MVC giúp tách riêng các phần xử lý
     của website

   - Rất gọn nhẹ: Phần lõi của framework rất nhỏ. Chỉ cần vài lớp trong
     public/core cũng có thể phát triển một dự án website theo đúng mô hình
     MVC.

   - Có tốc độ rất nhanh

   - Sử dụng URL thân thiện: ví dụ example.com/news/article/id/345 tức là
     controller: news, action: article, tham số id=345

   - Có khả năng mở rộng lớn. BKTiny Framework cho phép mở rộng thêm
     các thư viện, các helper tùy theo mục đích sử dụng.

   - Hoàn toàn là nguồn mở, miễn phí.



3.2 Sơ đồ luồng hoạt động
1. Tất cả các truy vấn đều thông qua trang index.php

   2. Dựa vào đường link URL truy vấn , sẽ định tuyến tới controller và gọi
      action tương ứng

   3. Controller có thể load các model, các thư viện…sau đó kết quả trả về cho
      view

   4. View trả về kết quả cho trình duyệt, view có thể sử dụng layout và helper.



3.2 Cấu trúc tổ chức cây thư mục

BKTiny Framework có cấu trúc cây thư mục rõ ràng và mạch lạc.Các dữ liệu,
controller, model , view … đều phải tuân thủ theo quy tắc đặt tên và đặt ở đúng
vị trí. Việc tuân thủ theo các quy tắc đó giúp cho hệ thống tự autoload các thư
viện cần thiết và mã nguồn trở lên trong sáng hơn, dễ phát hiện ra lỗi và sửa lỗi.

Trong thư mục gốc luôn gồm 3 thư mục application, library, public và 2 file
.htaccess, index.php
File .htaccess có nhiệm vụ rewrite mọi truy vấn đều phải qua trang index.php.
Thư mục library chưa mã nguồn của framework. Thư mục public chứa các file
ảnh, css, javascript …Mọi mã nguồn phát triển website được nằm trong thư mục
application.




Trong thư mục configs chứa 2 file common.php và config.php .Trong đó,
common.php chứa các hàm toàn cục như :autoload, loadHelper…File
config.php chứa một mảng config – các thông số cấu hình của website.Có thêm
thêm các dữ liệu vào mảng config này tùy theo mục đích sử dụng.

Thư mục modules chứa các module : trong đó module default là mặc định.Mỗi
module luôn gồm 3 thư mục controlles, models, views




3.2.1. Controller

   - Các file controller được đặt trong thư mục controllers.

   - Tên file controller được đặt theo quy tắc sau:
     NamecontrollerController.php. Trong đó: Namecontroller - chữ cái đầu
     viết hoa còn các chữ sau viết thường

   - Tên class giống như tên file controller và kế thừa từ lớp Core_Controller

      Ví dụ:   class IndexController extends Core_Controller
- Trong mỗi lớp Controller khi cần truyền giá trị sang view sử dụng cách
     gán như sau: $this->_view->tenbien = “giatri”. Khi đó ở view khi cần sử
     dụng chỉ cần gọi $this->tenbien

   - $this-> redirect($path) : redirect đường dẫn tới trang khác.

   - Sử dụng $this-> _baseUrl để lấy baseUrl hiện tại.

3.2.2 Action

   - Action là một phương thức trong controller.

   - Tên action có cấu trúc tên là nameactionAction. Trong đó nameaction
     luôn là chữ thường.

Ví dụ : indexAction

3.2.3 View

   - View có cấu trúc : views/scripts/namecontroller/nameaction.php. Đây
     chính là khung nhìn đối với controller và action tương ứng

   - Lưu ý tên controller là chữ thường , không có chữ Controller ở cuối và
     tên action cũng là chữ thường , không có chữ Action ở cuối.

3.2.4 Model

   - Model nằm trong thư mục models

   - Tên file model luôn bắt đầu bằng chữ hoa, các chữ còn lại là chữ thường.

   - Tên class của model luôn có dạng Namemodule_Model_Namemodel

   - Namemodule: luôn bắt đầu bằng chữ hoa, các chữ còn lại là chữ
     thường.Nếu là default module thì có thể bỏ qua.

   - Nếu sử dụng liên quan tới CSDL thì kế thừa từ lớp Core_Database.Khi
     đó sử dụng PDO : $this->_db.Chi tiết xem tại :
     http://php.net/manual/en/book.pdo.php



3.3 Các chức năng hiện tại

   - Hỗ trợ lập trình theo mô hình MVC
- Thao tác với cơ sở dữ liệu bằng PDO (chống SQL Injection)

   - Hỗ trợ multi layout.Có thể dùng nhiều giao diện cho website

   - Bảo mật và lọc dữ liệu đầu vào chống XSS

   - Phân trang

   - Gửi email (PHP mail, SMTP mail)

   - Tích hợp CkEditor

   - Tạo mã xác nhận (captcha)



4.Đặc tả chi tiết các lớp

4.1 Sơ đồ các lớp cơ bản của framework
4.2 Quy tắc đặt tên

- Đặt tên thư mục , tên file php không phải là class luôn là chữ thường

- Đặt tên file php là class luôn bắt đầu bằng chữ hoa.Các chữ còn lại là chữ
  thường , trừ trường hợp file là controller thì đặt tên như ví dụ
  IndexController.
- Tên class luôn bắt đầu bằng chữ hoa.Nếu trong tên có kí tự ‘ _’ thì sau đó
     cũng bắt đầu bằng chữ hoa

   - Đặt tên phương thức trong một class luôn bắt đầu bằng chữ thường.

   - Đặt tên các thuộc tính private hoặc protected luôn bắt đầu bằng ký tự ‘_’

4.3 Class Core_Registry

   - Kế thừa từ lớp ArrayAccess

   - Chức năng: lưu trữ mọi thuộc tính, giá trị, đối tượng…

   - Không được khởi tạo bằng hàm tạo(__construct), không được sao chép
     bằng hàm sao chép(__clone)

   - Chỉ tạo ra một đối tượng duy nhất bằng phương thức gọi
     Core_Registry::singleton()

   - Truy cập các phần tử được lưu trữ như là mảng

   - Mặc định các đối tượng của Core_Http, Core_Template , mảng config,
     baseUrl đã được lưu trữ trong registry

Ví dụ : Lấy các giá trị lưu trong registry

        $registry = Core_Registry::singleton();

        $http     = $registry[‘http’];

        $template = $registry[‘template’];

        $config    = $registry[‘config’];

        $baseUrl = $registry[‘baseUrl’];



4.4. Class Core_Http

Chức năng: Xử lý , phân tách chuỗi địa chỉ Url

Được gọi ra từ registry:

$registry = Core_Registry::singleton(); //đối tượng duy nhất của Core_Registry

$http      = $registry[‘http’];   // đối tượng của Core_Http
Các phương thức chính:

4.4.1 getBaseUrl() : string

   - Trả về đường dẫn từ thư mục gốc (webroot) tới thư mục chứa web

   - Ví dụ với XAMPP nếu thư mục chứa web là htdocs/abc/fw thì có địa chỉ
     truy cập là 127.0.0.1/abc/fw khi đó hàm getBaseUrl() sẽ trả về kết quả là
     abc/fw

   - Nếu website được upload trực tiếp vào webroot thì kết quả là một chuỗi
     rỗng: ” ”

   - Ví dụ : www.abc.com thì getBaseUrl() = “ ”

4.4.2 getRequestUri() : string

   - Trả về phần đường dẫn còn lại sau phần baseUrl

   - Ví dụ với địa chỉ
     http://127.0.0.1/fw/tenmodule/tencontrolle/tenaction/thamso1/gt1/thamso
     2/gt2

          getBaseUrl(): fw

          getRequestUri():tencontrolle/tenaction/thamso1/gt1/thamso2/gt2

4.4.3 getModule() : string

   - Trả về tên module : giá trị tenmodule trên đường link URL

   - Nếu không tồn tại, mặc định là giá trị được lưu trong
     config[‘module’][‘default’]

4.4.4 getController() : string

   - Trả về tên Controller : giá trị tencontroller trên đường link URL(viết hoa
     chữ cái đầu) ghép với chuỗi “Controller”

   - Mặc định là IndexController

4.4.5 getAction() : string

   - Trả về tên Action: giá trị tenaction trên đường link URL ghép với chuỗi
     “Action”
- Mặc định là indexAction

4.4.6 getArvs() : array

   - Trả về một mảng chứa các tham số truyền trên URL

   - Ví dụ với địa chỉ

   - http://127.0.0.1/fw/tenmodule/tencontrolle/tenaction/thamso1/gt1/thamso
     2/gt2 hàm getArvs() trả về mảng array( “thamso1” => “gt1”, “thamso2”
     =>”gt2” )

4.4.7 getParam($nameParam , $defaultValue = null):giá trị của tham số
$nameParam

   - Trả về giá trị của tham số $nameParam nếu không tồn tại trả về null

   - Ví dụ : getParam(“thamso1”) = “gt1”

   - Chú ý : cho dù đường link địa chỉ viết bằng chữ thường hay chữ hoa, web
     browser luôn gửi đến web server đường link là chuỗi chữ thường.

   - Để tránh xung đột không đặt tên controller , tên module ,tên action giống
     nhau

   - Ví dụ nếu có tên module là default thì không đặt controller là
     DefaultController hoặc action là defaultAction

4.5. Class Core_Template

Chức năng: gọi view, layout,widget tương ứng, lưu trữ và truyền giá trị từ
controller sang view

4.5.1 loadWidget($fileName)

   - Load widget có tên là $fileName trong thư mục views/wiggets/

   - $fileName có thể là tên file hoặc đường dẫn đến file

      Ví dụ:

       loadWidget(“tenfile”)

       loadWidget(“thumuc/tenfile”)

4.5.2 loadContent()
Tự động load nội dung ở trong views/scripts tương ứng với tên controller/action

4.5.3 show()

Trả về toàn bộ nội dung gửi về web client

4.5.4 layout($usingLayout, $nameLayout = null)

   - Thiết lập trạng thái sử dụng layout

       $usingLayout : boolean (true: sử dụng layout, false : không sử dụng
        layout(chỉ sử dụng trong views/scripts)

       $nameLayout: tên của layout nằm trong thư mục views/layouts.Chỉ
        được thiết lập nếu $usingLayout = true.Nếu $usingLayout = true và
        $nameLayout = null thì sẽ sử dụng tên mặc định trong
        $config[‘layout’][‘nameLayout’]

4.5.5 Thuộc tính $this->_baseUrl

   - Trả về baseUrl của website.Lưu ý so với hàm getBaseUrl() trong lớp
     Core_Http thì $this->_baseUrl đã được thêm ký tự ‘/’ vào trước

      Ví dụ : getBaseUrl() = “fw”           $this->_baseUrl() = “/fw”

   - Giá trị này thường được sử dụng trong các đường dẫn tuyệt đối tới file
     ảnh, css, javascript

      Ví dụ $this->_baseUrl.”/public/css/abc.css”

Chú ý:

    layout, widget , view chính là một phần của lớp Core_Template nên có
     thể sử dụng các phương thức, thuộc tính của lớp này bằng từ khóa $this-
     >….. như bình thường

    Khi sử dụng $this->tenbien = “giatri” với tenbien không phải là một
     thuộc tính của lớp này(_registry, _vars, _usingLayout, _nameLayout,
     _baseUrl) thì một biến có tên là tenbien sẽ tự động gán giá trị là
     “giatri”.Điều này thường được dùng để truyền giá trị từ controller sang
     view.
 Với $this tham chiếu tới lớp controller, $this->view tham chiếu tới lớp
     Core_Template .Khi đó ở trong layout, widget, view có thể sử dụng giá
     trị  $this->title

4.6 Class Core_Security

   - Sử dụng để lọc xss tất cả các nội dung người dùng nhập vào.Tránh tấn
     công xss (Cross-site Scripting)

    Cross-site Scripting (XSS) là lỗ hổng cho phép hacker có thể chèn những
     đoạn mã client-script (thường là Javascript hoặc HTML) vào trang web,
     khi người dùng vào những trên web này, mã độc sẽ được thực thi trên
     máy của người dùng.Khác với SQL Injection tấn công vào CSDL của
     website, XSS tấn công trực tiếp vào người dùng. Lợi dụng lỗi XSS,
     hacker có thể lừa đảo quản trị của website, ăn cắp cookie, chiếm
     sesion… từ đó có thể đăng nhập chiếm quyền điều khiển website.

   - Sử dụng phương thức xss_clean($str) : $str1. Trong đó $str là chuỗi cần
     lọc xss , $str1 là kết quả sau khi lọc xong

Lưu ý: Do hàm này có chi phí thực hiện lớn, nên chỉ trong các trường hợp quan
trọng mới sử dụng.Thông thường các phần dữ liệu do admin nhập thì bỏ qua,
chỉ sử dụng lọc trong các trường hợp người dùng nhập như phần đăng ký,
search, phản hồi …

4.7 Helpers

   - Helpers là các hàm (function) được sử dụng trong controller hoặc view,
     layout,widget .Đây không phải là lớp (class) mà chỉ là hàm (function) –
     khác với mọi phần còn lại của framework.

   - Helpers không tự load mà phải gọi hàm loadHelper khi cần sử dụng.Các
     file helper sẽ nằm trong thư mục library/helpers

4.8. Các thư viện mở rộng

Tất cả các thư viện mở rộng đều là các class được lưu trong library.Cũng giống
như trong core tên của các class đều được đặt theo đường dẫn thư mục.Chẳng
hạn file Ghk.php nằm trong thư mục library/abc/def thì tên lớp của nó phải là
Abc_Def_Ghk. Tất cả các class này đều được autoload.

More Related Content

What's hot

Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7KhanhPham
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTMasterCode.vn
 
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPTBài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPTMasterCode.vn
 
Wp hoi-thao-phan-quyen
Wp hoi-thao-phan-quyenWp hoi-thao-phan-quyen
Wp hoi-thao-phan-quyenKhanhPham
 
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTMasterCode.vn
 
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTBài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTMasterCode.vn
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkKhanhPham
 
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTBài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTMasterCode.vn
 
tao module joomla 1.5
tao module  joomla 1.5tao module  joomla 1.5
tao module joomla 1.5dvms
 
cai dat va quan tri Zpanel
cai dat va quan tri Zpanelcai dat va quan tri Zpanel
cai dat va quan tri Zpanellaonap166
 

What's hot (20)

Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
Giáo trình Zend Framework 2.0 - Nhúng template vào ứng dung ZF2 (P3) - Bài 7
 
Web301 slide 2
Web301   slide 2Web301   slide 2
Web301 slide 2
 
Web201 slide 2
Web201   slide 2Web201   slide 2
Web201 slide 2
 
Web201 slide 7
Web201   slide 7Web201   slide 7
Web201 slide 7
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
 
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPTBài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
Bài 2 Làm quen với môi trường PHP và MySQL (phần 2) - Giáo trình FPT
 
Web203 slide 5
Web203   slide 5Web203   slide 5
Web203 slide 5
 
Web201 slide 1
Web201   slide 1Web201   slide 1
Web201 slide 1
 
Wp hoi-thao-phan-quyen
Wp hoi-thao-phan-quyenWp hoi-thao-phan-quyen
Wp hoi-thao-phan-quyen
 
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
 
Web301 slide 1
Web301   slide 1Web301   slide 1
Web301 slide 1
 
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTBài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend Framework
 
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPTBài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
Bài 7 Xây dựng website sử dụng PHP và MySQL - Giáo trình FPT
 
Web201 slide 3
Web201   slide 3Web201   slide 3
Web201 slide 3
 
tao module joomla 1.5
tao module  joomla 1.5tao module  joomla 1.5
tao module joomla 1.5
 
Web201 slide 4
Web201   slide 4Web201   slide 4
Web201 slide 4
 
Slide 00 gioi thieu
Slide 00   gioi thieuSlide 00   gioi thieu
Slide 00 gioi thieu
 
cai dat va quan tri Zpanel
cai dat va quan tri Zpanelcai dat va quan tri Zpanel
cai dat va quan tri Zpanel
 
Web301 slide 3
Web301   slide 3Web301   slide 3
Web301 slide 3
 

Similar to Hỏi tình hình bk tiny bktiny-hdsd

Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc frameworkXuan Le
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
 
All zend
All zendAll zend
All zendkuetli
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPelearninglabvn
 
Lap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvcLap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvcChe Linh Nguyen
 
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7dvms
 
Devwork.vn Tài liệu lập trình PHP Laravel
Devwork.vn Tài liệu lập trình PHP LaravelDevwork.vn Tài liệu lập trình PHP Laravel
Devwork.vn Tài liệu lập trình PHP LaravelDevwork
 
Drupal framework xanh
Drupal framework xanhDrupal framework xanh
Drupal framework xanhXanh Nguyen
 
Kiến thức cần thiết làm việc
Kiến thức cần thiết làm việcKiến thức cần thiết làm việc
Kiến thức cần thiết làm việcmanhvokiem
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xZendVN
 
Create easymoduleinphpfox
Create easymoduleinphpfoxCreate easymoduleinphpfox
Create easymoduleinphpfoxEntu Di
 
Asp.net mvc framework qua cac vi du
Asp.net mvc framework  qua cac vi duAsp.net mvc framework  qua cac vi du
Asp.net mvc framework qua cac vi duKim Hyun Hai
 
Nội dung khóa học Nukeviet
Nội dung khóa học NukevietNội dung khóa học Nukeviet
Nội dung khóa học NukevietCuoiMetagame
 
LAB 4-5-6 XAY DUNG PROJECT BIGSCHOOL.pdf
LAB 4-5-6 XAY DUNG PROJECT BIGSCHOOL.pdfLAB 4-5-6 XAY DUNG PROJECT BIGSCHOOL.pdf
LAB 4-5-6 XAY DUNG PROJECT BIGSCHOOL.pdfVinhVinh58
 
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)Minh Tri Lam
 
Qtu.vn sql - chuong 7
Qtu.vn  sql - chuong 7Qtu.vn  sql - chuong 7
Qtu.vn sql - chuong 7Hoang le Minh
 

Similar to Hỏi tình hình bk tiny bktiny-hdsd (20)

Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc framework
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Yii
YiiYii
Yii
 
All zend
All zendAll zend
All zend
 
Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHP
 
Lap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvcLap trinh-joomla-15-theo-mo-hinh-mvc
Lap trinh-joomla-15-theo-mo-hinh-mvc
 
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
 
Devwork.vn Tài liệu lập trình PHP Laravel
Devwork.vn Tài liệu lập trình PHP LaravelDevwork.vn Tài liệu lập trình PHP Laravel
Devwork.vn Tài liệu lập trình PHP Laravel
 
Aspnet 3.5 _04
Aspnet 3.5 _04Aspnet 3.5 _04
Aspnet 3.5 _04
 
Drupal framework xanh
Drupal framework xanhDrupal framework xanh
Drupal framework xanh
 
Kiến thức cần thiết làm việc
Kiến thức cần thiết làm việcKiến thức cần thiết làm việc
Kiến thức cần thiết làm việc
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.x
 
Create easymoduleinphpfox
Create easymoduleinphpfoxCreate easymoduleinphpfox
Create easymoduleinphpfox
 
Asp.net mvc framework qua cac vi du
Asp.net mvc framework  qua cac vi duAsp.net mvc framework  qua cac vi du
Asp.net mvc framework qua cac vi du
 
Nội dung khóa học Nukeviet
Nội dung khóa học NukevietNội dung khóa học Nukeviet
Nội dung khóa học Nukeviet
 
Mvc 3
Mvc 3Mvc 3
Mvc 3
 
LAB 4-5-6 XAY DUNG PROJECT BIGSCHOOL.pdf
LAB 4-5-6 XAY DUNG PROJECT BIGSCHOOL.pdfLAB 4-5-6 XAY DUNG PROJECT BIGSCHOOL.pdf
LAB 4-5-6 XAY DUNG PROJECT BIGSCHOOL.pdf
 
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
 
Qtu.vn sql - chuong 7
Qtu.vn  sql - chuong 7Qtu.vn  sql - chuong 7
Qtu.vn sql - chuong 7
 

More from Vu Hung Nguyen

Co ban horenso - Tai lieu training noi bo
Co ban horenso - Tai lieu training noi boCo ban horenso - Tai lieu training noi bo
Co ban horenso - Tai lieu training noi boVu Hung Nguyen
 
Funix techtalk: Tự học hiệu quả thời 4.0
Funix techtalk: Tự học hiệu quả thời 4.0Funix techtalk: Tự học hiệu quả thời 4.0
Funix techtalk: Tự học hiệu quả thời 4.0Vu Hung Nguyen
 
Học cờ cùng con - Nguyễn Vỹ Kỳ Anh [U8]
Học cờ cùng con - Nguyễn Vỹ Kỳ Anh [U8]Học cờ cùng con - Nguyễn Vỹ Kỳ Anh [U8]
Học cờ cùng con - Nguyễn Vỹ Kỳ Anh [U8]Vu Hung Nguyen
 
Japanese for it bridge engineers
Japanese for it bridge engineersJapanese for it bridge engineers
Japanese for it bridge engineersVu Hung Nguyen
 
Basic IT Project Management Terminologies
Basic IT Project Management TerminologiesBasic IT Project Management Terminologies
Basic IT Project Management TerminologiesVu Hung Nguyen
 
2018 Học cờ cùng con - Nguyễn Vũ Kỳ Anh [U7]
2018 Học cờ cùng con - Nguyễn Vũ Kỳ Anh [U7]2018 Học cờ cùng con - Nguyễn Vũ Kỳ Anh [U7]
2018 Học cờ cùng con - Nguyễn Vũ Kỳ Anh [U7]Vu Hung Nguyen
 
Làm việc hiệu quả với sếp Nhật (2017)
Làm việc hiệu quả với sếp Nhật (2017)Làm việc hiệu quả với sếp Nhật (2017)
Làm việc hiệu quả với sếp Nhật (2017)Vu Hung Nguyen
 
Problem Solving Skills (for IT Engineers)
Problem Solving Skills (for IT Engineers)Problem Solving Skills (for IT Engineers)
Problem Solving Skills (for IT Engineers)Vu Hung Nguyen
 
Using Shader in cocos2d-x
Using Shader in cocos2d-xUsing Shader in cocos2d-x
Using Shader in cocos2d-xVu Hung Nguyen
 
Pham Anh Tu - TK Framework
Pham Anh Tu - TK FrameworkPham Anh Tu - TK Framework
Pham Anh Tu - TK FrameworkVu Hung Nguyen
 
My idol: Magnus Carlsen vs. Ky Anh 2G1 NGS Newton
My idol: Magnus Carlsen vs. Ky Anh 2G1 NGS NewtonMy idol: Magnus Carlsen vs. Ky Anh 2G1 NGS Newton
My idol: Magnus Carlsen vs. Ky Anh 2G1 NGS NewtonVu Hung Nguyen
 
Basic advanced scrum framework
Basic advanced scrum frameworkBasic advanced scrum framework
Basic advanced scrum frameworkVu Hung Nguyen
 
FPT Univ. Talkshow IT khong chi la lap trinh
FPT Univ. Talkshow IT khong chi la lap trinhFPT Univ. Talkshow IT khong chi la lap trinh
FPT Univ. Talkshow IT khong chi la lap trinhVu Hung Nguyen
 
Basic & Advanced Scrum Framework
Basic & Advanced Scrum FrameworkBasic & Advanced Scrum Framework
Basic & Advanced Scrum FrameworkVu Hung Nguyen
 
Agile Vietnam Conference 2016: Recap
Agile Vietnam Conference 2016: RecapAgile Vietnam Conference 2016: Recap
Agile Vietnam Conference 2016: RecapVu Hung Nguyen
 
IT Public Speaking Guidelines
IT Public Speaking GuidelinesIT Public Speaking Guidelines
IT Public Speaking GuidelinesVu Hung Nguyen
 
Kanban: Cơ bản và Nâng cao
Kanban: Cơ bản và Nâng caoKanban: Cơ bản và Nâng cao
Kanban: Cơ bản và Nâng caoVu Hung Nguyen
 
Học cờ vua cùng con Nguyễn Vũ Kỳ Anh (U6)
Học cờ vua cùng con Nguyễn Vũ Kỳ Anh (U6)Học cờ vua cùng con Nguyễn Vũ Kỳ Anh (U6)
Học cờ vua cùng con Nguyễn Vũ Kỳ Anh (U6)Vu Hung Nguyen
 
Fuji Technology Workshop: Learning Skills
Fuji Technology Workshop: Learning SkillsFuji Technology Workshop: Learning Skills
Fuji Technology Workshop: Learning SkillsVu Hung Nguyen
 
Anti patterns in it project management
Anti patterns in it project managementAnti patterns in it project management
Anti patterns in it project managementVu Hung Nguyen
 

More from Vu Hung Nguyen (20)

Co ban horenso - Tai lieu training noi bo
Co ban horenso - Tai lieu training noi boCo ban horenso - Tai lieu training noi bo
Co ban horenso - Tai lieu training noi bo
 
Funix techtalk: Tự học hiệu quả thời 4.0
Funix techtalk: Tự học hiệu quả thời 4.0Funix techtalk: Tự học hiệu quả thời 4.0
Funix techtalk: Tự học hiệu quả thời 4.0
 
Học cờ cùng con - Nguyễn Vỹ Kỳ Anh [U8]
Học cờ cùng con - Nguyễn Vỹ Kỳ Anh [U8]Học cờ cùng con - Nguyễn Vỹ Kỳ Anh [U8]
Học cờ cùng con - Nguyễn Vỹ Kỳ Anh [U8]
 
Japanese for it bridge engineers
Japanese for it bridge engineersJapanese for it bridge engineers
Japanese for it bridge engineers
 
Basic IT Project Management Terminologies
Basic IT Project Management TerminologiesBasic IT Project Management Terminologies
Basic IT Project Management Terminologies
 
2018 Học cờ cùng con - Nguyễn Vũ Kỳ Anh [U7]
2018 Học cờ cùng con - Nguyễn Vũ Kỳ Anh [U7]2018 Học cờ cùng con - Nguyễn Vũ Kỳ Anh [U7]
2018 Học cờ cùng con - Nguyễn Vũ Kỳ Anh [U7]
 
Làm việc hiệu quả với sếp Nhật (2017)
Làm việc hiệu quả với sếp Nhật (2017)Làm việc hiệu quả với sếp Nhật (2017)
Làm việc hiệu quả với sếp Nhật (2017)
 
Problem Solving Skills (for IT Engineers)
Problem Solving Skills (for IT Engineers)Problem Solving Skills (for IT Engineers)
Problem Solving Skills (for IT Engineers)
 
Using Shader in cocos2d-x
Using Shader in cocos2d-xUsing Shader in cocos2d-x
Using Shader in cocos2d-x
 
Pham Anh Tu - TK Framework
Pham Anh Tu - TK FrameworkPham Anh Tu - TK Framework
Pham Anh Tu - TK Framework
 
My idol: Magnus Carlsen vs. Ky Anh 2G1 NGS Newton
My idol: Magnus Carlsen vs. Ky Anh 2G1 NGS NewtonMy idol: Magnus Carlsen vs. Ky Anh 2G1 NGS Newton
My idol: Magnus Carlsen vs. Ky Anh 2G1 NGS Newton
 
Basic advanced scrum framework
Basic advanced scrum frameworkBasic advanced scrum framework
Basic advanced scrum framework
 
FPT Univ. Talkshow IT khong chi la lap trinh
FPT Univ. Talkshow IT khong chi la lap trinhFPT Univ. Talkshow IT khong chi la lap trinh
FPT Univ. Talkshow IT khong chi la lap trinh
 
Basic & Advanced Scrum Framework
Basic & Advanced Scrum FrameworkBasic & Advanced Scrum Framework
Basic & Advanced Scrum Framework
 
Agile Vietnam Conference 2016: Recap
Agile Vietnam Conference 2016: RecapAgile Vietnam Conference 2016: Recap
Agile Vietnam Conference 2016: Recap
 
IT Public Speaking Guidelines
IT Public Speaking GuidelinesIT Public Speaking Guidelines
IT Public Speaking Guidelines
 
Kanban: Cơ bản và Nâng cao
Kanban: Cơ bản và Nâng caoKanban: Cơ bản và Nâng cao
Kanban: Cơ bản và Nâng cao
 
Học cờ vua cùng con Nguyễn Vũ Kỳ Anh (U6)
Học cờ vua cùng con Nguyễn Vũ Kỳ Anh (U6)Học cờ vua cùng con Nguyễn Vũ Kỳ Anh (U6)
Học cờ vua cùng con Nguyễn Vũ Kỳ Anh (U6)
 
Fuji Technology Workshop: Learning Skills
Fuji Technology Workshop: Learning SkillsFuji Technology Workshop: Learning Skills
Fuji Technology Workshop: Learning Skills
 
Anti patterns in it project management
Anti patterns in it project managementAnti patterns in it project management
Anti patterns in it project management
 

Hỏi tình hình bk tiny bktiny-hdsd

  • 1. CUỘC THI MÙA HÈ SÁNG TẠO 2011 TÀI LIỆU HƯỚNG DẪN SỬ DỤNG BKTINY FRAMEWORK MÃ SỐ MHST11-15: XÂY DỰNG EXTENSION- PORTAL CHO NIMBUS. Nhóm sinh viên: Lê Quang Hiếu Lưu Thị Thùy Nhung Phạm Văn Tân Mentor: Nguyễn Hữu Đức Hà Nội, tháng 9 năm 2011
  • 2. Hướng dẫn sử dụng BKTiny Framework 1.Giới thiệu 2.Yêu cầu hệ thống 3.Kiến trúc BKTiny framework 4.Đặc tả chi tiết các lớp
  • 3. 1.Giới thiệu BKTiny Framework là một PHP Framework được tổ chức theo mô hình MVC.Sử dụng BKTiny Framework giúp lập trình dự án PHP nhanh hơn, code trong sáng hơn, dễ quản lý, chỉnh sửa , nâng cấp 2.Yêu cầu hệ thống  PHP phiên bản 5.3.0 trở lên  MySQL 5.0 trở lên  Apache hỗ trợ mod_rewrite và PDO_mysql 3.Kiến trúc BkTiny Framework 3.1 Các đặc điểm của BkTiny Framework BKTiny Framework có các đặc điểm chính sau: - Là một PHP framework : BKTiny Framework giúp lập trình dự án PHP nhanh hơn, code trong sáng hơn, dễ quản lý, chỉnh sửa , nâng cấp - Sử dụng mô hình MVC: mô hình MVC giúp tách riêng các phần xử lý của website - Rất gọn nhẹ: Phần lõi của framework rất nhỏ. Chỉ cần vài lớp trong public/core cũng có thể phát triển một dự án website theo đúng mô hình MVC. - Có tốc độ rất nhanh - Sử dụng URL thân thiện: ví dụ example.com/news/article/id/345 tức là controller: news, action: article, tham số id=345 - Có khả năng mở rộng lớn. BKTiny Framework cho phép mở rộng thêm các thư viện, các helper tùy theo mục đích sử dụng. - Hoàn toàn là nguồn mở, miễn phí. 3.2 Sơ đồ luồng hoạt động
  • 4. 1. Tất cả các truy vấn đều thông qua trang index.php 2. Dựa vào đường link URL truy vấn , sẽ định tuyến tới controller và gọi action tương ứng 3. Controller có thể load các model, các thư viện…sau đó kết quả trả về cho view 4. View trả về kết quả cho trình duyệt, view có thể sử dụng layout và helper. 3.2 Cấu trúc tổ chức cây thư mục BKTiny Framework có cấu trúc cây thư mục rõ ràng và mạch lạc.Các dữ liệu, controller, model , view … đều phải tuân thủ theo quy tắc đặt tên và đặt ở đúng vị trí. Việc tuân thủ theo các quy tắc đó giúp cho hệ thống tự autoload các thư viện cần thiết và mã nguồn trở lên trong sáng hơn, dễ phát hiện ra lỗi và sửa lỗi. Trong thư mục gốc luôn gồm 3 thư mục application, library, public và 2 file .htaccess, index.php
  • 5. File .htaccess có nhiệm vụ rewrite mọi truy vấn đều phải qua trang index.php. Thư mục library chưa mã nguồn của framework. Thư mục public chứa các file ảnh, css, javascript …Mọi mã nguồn phát triển website được nằm trong thư mục application. Trong thư mục configs chứa 2 file common.php và config.php .Trong đó, common.php chứa các hàm toàn cục như :autoload, loadHelper…File config.php chứa một mảng config – các thông số cấu hình của website.Có thêm thêm các dữ liệu vào mảng config này tùy theo mục đích sử dụng. Thư mục modules chứa các module : trong đó module default là mặc định.Mỗi module luôn gồm 3 thư mục controlles, models, views 3.2.1. Controller - Các file controller được đặt trong thư mục controllers. - Tên file controller được đặt theo quy tắc sau: NamecontrollerController.php. Trong đó: Namecontroller - chữ cái đầu viết hoa còn các chữ sau viết thường - Tên class giống như tên file controller và kế thừa từ lớp Core_Controller Ví dụ: class IndexController extends Core_Controller
  • 6. - Trong mỗi lớp Controller khi cần truyền giá trị sang view sử dụng cách gán như sau: $this->_view->tenbien = “giatri”. Khi đó ở view khi cần sử dụng chỉ cần gọi $this->tenbien - $this-> redirect($path) : redirect đường dẫn tới trang khác. - Sử dụng $this-> _baseUrl để lấy baseUrl hiện tại. 3.2.2 Action - Action là một phương thức trong controller. - Tên action có cấu trúc tên là nameactionAction. Trong đó nameaction luôn là chữ thường. Ví dụ : indexAction 3.2.3 View - View có cấu trúc : views/scripts/namecontroller/nameaction.php. Đây chính là khung nhìn đối với controller và action tương ứng - Lưu ý tên controller là chữ thường , không có chữ Controller ở cuối và tên action cũng là chữ thường , không có chữ Action ở cuối. 3.2.4 Model - Model nằm trong thư mục models - Tên file model luôn bắt đầu bằng chữ hoa, các chữ còn lại là chữ thường. - Tên class của model luôn có dạng Namemodule_Model_Namemodel - Namemodule: luôn bắt đầu bằng chữ hoa, các chữ còn lại là chữ thường.Nếu là default module thì có thể bỏ qua. - Nếu sử dụng liên quan tới CSDL thì kế thừa từ lớp Core_Database.Khi đó sử dụng PDO : $this->_db.Chi tiết xem tại : http://php.net/manual/en/book.pdo.php 3.3 Các chức năng hiện tại - Hỗ trợ lập trình theo mô hình MVC
  • 7. - Thao tác với cơ sở dữ liệu bằng PDO (chống SQL Injection) - Hỗ trợ multi layout.Có thể dùng nhiều giao diện cho website - Bảo mật và lọc dữ liệu đầu vào chống XSS - Phân trang - Gửi email (PHP mail, SMTP mail) - Tích hợp CkEditor - Tạo mã xác nhận (captcha) 4.Đặc tả chi tiết các lớp 4.1 Sơ đồ các lớp cơ bản của framework
  • 8. 4.2 Quy tắc đặt tên - Đặt tên thư mục , tên file php không phải là class luôn là chữ thường - Đặt tên file php là class luôn bắt đầu bằng chữ hoa.Các chữ còn lại là chữ thường , trừ trường hợp file là controller thì đặt tên như ví dụ IndexController.
  • 9. - Tên class luôn bắt đầu bằng chữ hoa.Nếu trong tên có kí tự ‘ _’ thì sau đó cũng bắt đầu bằng chữ hoa - Đặt tên phương thức trong một class luôn bắt đầu bằng chữ thường. - Đặt tên các thuộc tính private hoặc protected luôn bắt đầu bằng ký tự ‘_’ 4.3 Class Core_Registry - Kế thừa từ lớp ArrayAccess - Chức năng: lưu trữ mọi thuộc tính, giá trị, đối tượng… - Không được khởi tạo bằng hàm tạo(__construct), không được sao chép bằng hàm sao chép(__clone) - Chỉ tạo ra một đối tượng duy nhất bằng phương thức gọi Core_Registry::singleton() - Truy cập các phần tử được lưu trữ như là mảng - Mặc định các đối tượng của Core_Http, Core_Template , mảng config, baseUrl đã được lưu trữ trong registry Ví dụ : Lấy các giá trị lưu trong registry $registry = Core_Registry::singleton(); $http = $registry[‘http’]; $template = $registry[‘template’]; $config = $registry[‘config’]; $baseUrl = $registry[‘baseUrl’]; 4.4. Class Core_Http Chức năng: Xử lý , phân tách chuỗi địa chỉ Url Được gọi ra từ registry: $registry = Core_Registry::singleton(); //đối tượng duy nhất của Core_Registry $http = $registry[‘http’]; // đối tượng của Core_Http
  • 10. Các phương thức chính: 4.4.1 getBaseUrl() : string - Trả về đường dẫn từ thư mục gốc (webroot) tới thư mục chứa web - Ví dụ với XAMPP nếu thư mục chứa web là htdocs/abc/fw thì có địa chỉ truy cập là 127.0.0.1/abc/fw khi đó hàm getBaseUrl() sẽ trả về kết quả là abc/fw - Nếu website được upload trực tiếp vào webroot thì kết quả là một chuỗi rỗng: ” ” - Ví dụ : www.abc.com thì getBaseUrl() = “ ” 4.4.2 getRequestUri() : string - Trả về phần đường dẫn còn lại sau phần baseUrl - Ví dụ với địa chỉ http://127.0.0.1/fw/tenmodule/tencontrolle/tenaction/thamso1/gt1/thamso 2/gt2  getBaseUrl(): fw  getRequestUri():tencontrolle/tenaction/thamso1/gt1/thamso2/gt2 4.4.3 getModule() : string - Trả về tên module : giá trị tenmodule trên đường link URL - Nếu không tồn tại, mặc định là giá trị được lưu trong config[‘module’][‘default’] 4.4.4 getController() : string - Trả về tên Controller : giá trị tencontroller trên đường link URL(viết hoa chữ cái đầu) ghép với chuỗi “Controller” - Mặc định là IndexController 4.4.5 getAction() : string - Trả về tên Action: giá trị tenaction trên đường link URL ghép với chuỗi “Action”
  • 11. - Mặc định là indexAction 4.4.6 getArvs() : array - Trả về một mảng chứa các tham số truyền trên URL - Ví dụ với địa chỉ - http://127.0.0.1/fw/tenmodule/tencontrolle/tenaction/thamso1/gt1/thamso 2/gt2 hàm getArvs() trả về mảng array( “thamso1” => “gt1”, “thamso2” =>”gt2” ) 4.4.7 getParam($nameParam , $defaultValue = null):giá trị của tham số $nameParam - Trả về giá trị của tham số $nameParam nếu không tồn tại trả về null - Ví dụ : getParam(“thamso1”) = “gt1” - Chú ý : cho dù đường link địa chỉ viết bằng chữ thường hay chữ hoa, web browser luôn gửi đến web server đường link là chuỗi chữ thường. - Để tránh xung đột không đặt tên controller , tên module ,tên action giống nhau - Ví dụ nếu có tên module là default thì không đặt controller là DefaultController hoặc action là defaultAction 4.5. Class Core_Template Chức năng: gọi view, layout,widget tương ứng, lưu trữ và truyền giá trị từ controller sang view 4.5.1 loadWidget($fileName) - Load widget có tên là $fileName trong thư mục views/wiggets/ - $fileName có thể là tên file hoặc đường dẫn đến file Ví dụ:  loadWidget(“tenfile”)  loadWidget(“thumuc/tenfile”) 4.5.2 loadContent()
  • 12. Tự động load nội dung ở trong views/scripts tương ứng với tên controller/action 4.5.3 show() Trả về toàn bộ nội dung gửi về web client 4.5.4 layout($usingLayout, $nameLayout = null) - Thiết lập trạng thái sử dụng layout  $usingLayout : boolean (true: sử dụng layout, false : không sử dụng layout(chỉ sử dụng trong views/scripts)  $nameLayout: tên của layout nằm trong thư mục views/layouts.Chỉ được thiết lập nếu $usingLayout = true.Nếu $usingLayout = true và $nameLayout = null thì sẽ sử dụng tên mặc định trong $config[‘layout’][‘nameLayout’] 4.5.5 Thuộc tính $this->_baseUrl - Trả về baseUrl của website.Lưu ý so với hàm getBaseUrl() trong lớp Core_Http thì $this->_baseUrl đã được thêm ký tự ‘/’ vào trước Ví dụ : getBaseUrl() = “fw” $this->_baseUrl() = “/fw” - Giá trị này thường được sử dụng trong các đường dẫn tuyệt đối tới file ảnh, css, javascript Ví dụ $this->_baseUrl.”/public/css/abc.css” Chú ý:  layout, widget , view chính là một phần của lớp Core_Template nên có thể sử dụng các phương thức, thuộc tính của lớp này bằng từ khóa $this- >….. như bình thường  Khi sử dụng $this->tenbien = “giatri” với tenbien không phải là một thuộc tính của lớp này(_registry, _vars, _usingLayout, _nameLayout, _baseUrl) thì một biến có tên là tenbien sẽ tự động gán giá trị là “giatri”.Điều này thường được dùng để truyền giá trị từ controller sang view.
  • 13.  Với $this tham chiếu tới lớp controller, $this->view tham chiếu tới lớp Core_Template .Khi đó ở trong layout, widget, view có thể sử dụng giá trị $this->title 4.6 Class Core_Security - Sử dụng để lọc xss tất cả các nội dung người dùng nhập vào.Tránh tấn công xss (Cross-site Scripting)  Cross-site Scripting (XSS) là lỗ hổng cho phép hacker có thể chèn những đoạn mã client-script (thường là Javascript hoặc HTML) vào trang web, khi người dùng vào những trên web này, mã độc sẽ được thực thi trên máy của người dùng.Khác với SQL Injection tấn công vào CSDL của website, XSS tấn công trực tiếp vào người dùng. Lợi dụng lỗi XSS, hacker có thể lừa đảo quản trị của website, ăn cắp cookie, chiếm sesion… từ đó có thể đăng nhập chiếm quyền điều khiển website. - Sử dụng phương thức xss_clean($str) : $str1. Trong đó $str là chuỗi cần lọc xss , $str1 là kết quả sau khi lọc xong Lưu ý: Do hàm này có chi phí thực hiện lớn, nên chỉ trong các trường hợp quan trọng mới sử dụng.Thông thường các phần dữ liệu do admin nhập thì bỏ qua, chỉ sử dụng lọc trong các trường hợp người dùng nhập như phần đăng ký, search, phản hồi … 4.7 Helpers - Helpers là các hàm (function) được sử dụng trong controller hoặc view, layout,widget .Đây không phải là lớp (class) mà chỉ là hàm (function) – khác với mọi phần còn lại của framework. - Helpers không tự load mà phải gọi hàm loadHelper khi cần sử dụng.Các file helper sẽ nằm trong thư mục library/helpers 4.8. Các thư viện mở rộng Tất cả các thư viện mở rộng đều là các class được lưu trong library.Cũng giống như trong core tên của các class đều được đặt theo đường dẫn thư mục.Chẳng hạn file Ghk.php nằm trong thư mục library/abc/def thì tên lớp của nó phải là Abc_Def_Ghk. Tất cả các class này đều được autoload.