HỌC PHALCON CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Bài 02: Xây dựng cấu trúc folder cho ứng dụng phalcon

Nếu bạn đã từng tìm hiểu qua các Framework khác thì thông thường khi download source về nó sẽ có hệ thống danh sách các folders theo cấu trúc của nó, chúng ta sẽ tuân theo cấu trúc đó và sử dụng. Nhưng đối với Phalcon thì nó hơi khác, chúng ta có thể tự mình tạo ra cấu trúc folder của ứng dụng riêng cho mình và sau đó sẽ cấu hình cho Phalcon hiểu mô hình chúng ta đang sử dụng.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Bình thường thì bạn sẽ dùng lệnh để tạo danh sách folder luôn nhưng trong bài này chúng ta sẽ tự mình tạo từng folder để dễ nắm bắt hơn.

1. Cấu trúc thông thường của Phalcon

Thông thường cấu trúc của Phalcon khi mới cài đặt và tạo tự động sẽ như sau:

project_name/
    /app/
       /cache/
       /config/
       /controllers/
       /models/
       /views/
    /public/
       /bootstrap/
       /css/
       /js/

Các bạn thấy cấu trúc nó không khác gì các Framework hiện nay như Codeigniter, Laravel đó là tuân theo mô hình MVC. Bây giờ các bạn tạo một các file như trên rồi chúng ta sẽ tiếp tục thực hành nhé.

Bài viết này được đăng tại [free tuts .net]

2. Cấu hình file bootstrap

File Bootstrap không phải là bộ Famework Twitter Bootstrap đâu nhé các bạn, đây là file mà ta có thể hiểu nó dùng để điều hướng, khởi tạo hệ thống của ứng dụng, tất cả các request sẽ được gọi tới file này và file này sẽ phân tích request, gọi đến controller phù hợp.

Bạn tạo file index.php với đường dẫn như sau:  project_name/index.php, sau đó copy nội dung sau vào:

try {

    // Đăng ký Loader
    $loader = new \Phalcon\Loader();
    $loader->registerDirs(array(
        'app/controllers/', // Khai báo Folder Controller
        'app/models/'  // Khai báo models
    ))->register();

    // Khởi tạo DI
    $di = new Phalcon\DI\FactoryDefault();

    // Khởi tạo và khai báo thư mục view
    $di->set('view', function(){
        $view = new \Phalcon\Mvc\View();
        $view->setViewsDir('app/views/');
        return $view;
    });
    
    // Câu hình url tới project, vì mình nằm trong project_name nên phải khai báo
    $di->set('url', function(){
        $url = new \Phalcon\Mvc\Url();
        $url->setBaseUri('/project_name/');
        return $url;
    });

    // Khởi tạo ứng dụng
    $application = new \Phalcon\Mvc\Application($di);

    // Xử lý và hiển thị kết quả
    echo $application->handle()->getContent();

} catch(\Phalcon\Exception $e) {
     echo "PhalconException: ", $e->getMessage();
}
Trong đó nội dung từng phần nhỏ mình đã comment rồi nên bạn đọc trong đó nhé. Lúc này cấu trúc folder của chúng ta như sau:

project_name/
    /app/
       /cache/
       /config/
       /controllers/
       /models/
       /views/
    /public/
       /bootstrap/
       /css/
       /js/
    /index.php

3. Xóa bỏ file index.php bằng htaccess

Bước này khá là quan trong nếu bạn quan tâm đến vấn đề SEO dự án của bạn, vì như mình trình bày tất cả các request đều vào file index.php nên trên URL bắt buộc chúng ta phải gõ thêm index.php. Nhưng điều này không hay lắm vì nhìn rất phản cảm, chính vì vậy chúng ta sử dụng .htaccess để điều trị căn bệnh này của nó.

Bạn tạo file .htaccess có đường dẫn là project_name/.htaccess với nội dung như sau:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
Tới đây coi như thành công 90% việc cấu hình rồi đấy, bây giờ chúng ta sẽ thực hiện viết chạy chương trình đầu tiên.

4. Ví dụ đầu tiên của Phalcon

Vì mỗi bài mình chỉ trình bày một vấn đề nên về mô hình MVC trong Phalcon mình sẽ trình bày ở bài kế tiếp, bài này mình chỉ lấy một đoạn ví dụ nhỏ để minh họa..

Bạn tạo file IndexController.php có URL là project_name/app/controllers/IndexController.php với nội dung như sau:

class IndexController extends \Phalcon\Mvc\Controller
{
    public function indexAction()
    {
        echo '<h1>Hello World!</h1>';
    }
}
Đây chính là file controller có tên là Index. Hậu tố Controller dùng để phân biệt giữa controller và các đối tượng khác. Các bạn thấy trong lớp IndexController có kế thừa một lớp   là Phalcon\Mvc\Controller, vậy lớp này đâu ra? Câu trả lời đó là file ext_phalcon.dll mà bạn đã import vào ở bài hướng dẫn cài đặt Phalcon trên window đấy. Lúc này cấu trúc Folder của chúng ta như sau:

project_name/
    /app/
       /cache/
       /config/
       /controllers/
            /IndexController.php/
       /models/
       /views/
    /public/
       /bootstrap/
       /css/
       /js/
    /index.php

Bây giờ bạn chạy lên và gõ vào đường dẫn URL  http://localhost/project_name/index/index thì màn hình sẽ xuất hiện chữ "Hello World!". Trong URL trên thì:

  • Index màu xanh là tên Controller (IndexController)
  • Index màu đỏ là tên phương thức index (indexAction)

Hoặc bạn gõ với URL là: http://localhost/project_name thì kết quả vẫn tương đương, lý do là chúng ta không truyền vào tham số controller và action nên nó sẽ tự đông gọi đến Controller index và Action index.

Lời kêt

Bài này chúng ta chỉ tìm hiểu mô hình cấu trúc folder trong ứng dụng Phalcon thôi chứ chưa đề cập đến mô hình MVC nhé, bài tiếp theo chúng ta sẽ tìm hiểu đến các thành phần này như các tạo controller, các tạo views, cách gọi views và tạo model trong phalcon một cách chi tiết nhất.

Cùng chuyên mục:

Bài 06: Tạo template dùng chung trong Phalcon

Bài 06: Tạo template dùng chung trong Phalcon

Trong Phalcon ngoài Main Template thì nó còn có một chức năng tạo một Template…

Bài 05: Mô hình layouts của views trong Phalcon

Bài 05: Mô hình layouts của views trong Phalcon

Nếu bạn đã từng nghiên cứu qua Codeigniter Framework thì bạn sẽ thấy điểm yếu…

Bài 04: Thao tác với Views trong Phalcon

Bài 04: Thao tác với Views trong Phalcon

Tiếp theo bài trước, trong bài này chúng ta sẽ tìm hiểu cách khai báo…

Bài 03: Thao tác với Controller trong Phalcon

Bài 03: Thao tác với Controller trong Phalcon

Phalcon hoạt động theo mô hình MVC nên nó sẽ có một file index.php làm…

Bài 01: Download và cài đặt Phalcon trên Window

Bài 01: Download và cài đặt Phalcon trên Window

Hiện nay có rất nhiều PHP Framwork nên việc lựa chọn cho mình một Framwork…

Top