Thứ Ba, 28 tháng 10, 2008

Sử dụng bootstrap.php cấu hình các thư mục chứa source code trong cakephp

Như chúng ta đã biết, cakephp viết theo mô hình MVC, do vậy khi ta viết các đoạn lệnh của chương trình chủ yếu chúng ta chỉ viết ở các thư mục trong app như model, controller, views, component(trong controller) và helper (trong views). Các file source chủ yếu sẽ được viết trên các thư mục này.

Sau đây tôi xin hướng dẫn các bạn chuyển các file source của chúng ta ra một thư mục khác ngoài app. Việc chuyển code ra khỏi thư mục app trong cakephp sẽ có một số tiện ích sau đây:

- Quản lý các file code sẽ dễ dàng và sáng sủa hơn, dễ bảo trì hơn. Các file của chúng ta khi chuyển ra thư mục riêng thì việc tìm kiếm sẽ trở lên dễ dàng hơn so với việc ta tìm kiếm một file trong một mớ file hỗn độn bên trong app.

- Với các bạn hay sử dụng svn thì việc này sẽ tạo ra một sự tiện dụng vô cùng lớn. Thay vì chúng ta phải gửi rất nhiều code, bao gồm cả những file không cần thiết thì nay ta chỉ việc gửi một thư mục duy nhất mà ở đó chứa tất cả những gì chúng ta cần làm nên.

- Việc thay đổi các bản cakephp mới hơn sẽ trở lên dễ dàng hơn, vì giơ đây chương trình của chúng ta nằm ngoài các thư mục của cakephp. Thay vì trước khi khi update bản cakephp mới chúng ta phải nhọc công copy riêng từng thư mục ra thì nay ta chỉ việc copy đề lên thư mục cũ là được. Các file của chúng ta không hề bị ảnh hưởng gì cả.

Còn rất nhiều tiện ích nữa mà tôi chưa nhắc đến. Nhưng tôi nghĩ như vậy có lẽ là đủ để các bạn nên thử rồi đấy. Sau đây tôi sẽ thực hiện chuyển dữ liệu ở các thư mục sau ra bên ngoài: controllers, views và models (tất nhiên là sẽ bao gồm cả các thư mục con nằm bên trong các thư mục này như là helpers, components ...). Và thư mục mà chúng ta sẽ chuyển đến là thư mục bitjsc nằm cùng cấp với thư mục app.
Sau đây là các công việc cần làm:

- Đầu tiên: Chúng ta sẽ tạo các thư mục cần thiết bao gồm:

+ Thư mục bitjsc nằm cùng cấp với thư mục app và cake.

+ Các thư mục con nằm trong bitjsc bao gồm : controllers, views, models và config.

+ Các thư mục con nằm trong các thư mục controller, views, models và config như là: helpers, component ....

- Tiếp theo, chúng ta sẽ cấu hình lại file bootstrap.php theo đường dẫn /app/config/bootstrap.php. Chúng ta thêm vào cuối file dòng sau:
require_once(dirname(__FILE__) . DS . '..' . DS . '..' . DS . 'bitjsc' . DS . 'config' . DS . 'bootstrap.php');

Dòng trên sẽ thực hiện gọi file bootstrap.php trong theo đường dẫn 'bitjsc/config/', đây là các thư mục mà chúng ta vừa tạo ở phía trên. Trong thư mục 'bitjsc/config/' chúng ta sẽ tạo ra một file có tên là bootstrap.php, trong file này ta sẽ thực hiện bẫy để khi gọi các model, controller hay views thì chương trình sẽ tự động gọi các file tương ứng trong thư mục bitjsc thay vì gọi chúng trong app.

- Tạo file bootstrap.php theo đường dẫn '/bitjsc/config/bootstrap.php'.  Nội dung của file bootstap.php sẽ như sau:
<?php
/**
* Bitjsc bootstrap file
*
* This file should be included in app/bootsrap.php. It connect WF
* with your application.
*
* @package bitjsc
*/

// Bitjsc MVC paths
define('BITJSC_DIR', ROOT . DS . 'bitjsc');
define('SETTINGS_CACHE_FILE', TMP . 'settings' . DS . 'cache');

$modelPaths = array(BITJSC_DIR . DS . 'models' . DS);
$viewPaths = array(BITJSC_DIR . DS . 'views' . DS);
$controllerPaths = array(BITJSC_DIR . DS . 'controllers' . DS);
$behaviorPaths = array(BITJSC_DIR . DS . 'models' . DS . 'behaviors' . DS);
$helperPaths = array(BITJSC_DIR . DS . 'views' . DS . 'helpers' . DS);
$componentPaths = array(BITJSC_DIR . DS . 'controllers' . DS . 'components' . DS);
?>

Vậy là chúng ta đã xong việc cấu hình lại đường dẫn. Giờ khi thêm mới bất kỳ file controller, views hay model gì các bạn chỉ cần thêm vào các thư mục tương ứng trong bitjsc là xong. Chúc các bạn thành công.

1 nhận xét:

  1. Very nice post. I just stumbled upon your weblog and
    wished to say that I've truly enjoyed surfing around your blog posts. After all I will be subscribing to your feed and I hope you write again soon!

    Trả lờiXóa