để bắt tay vào viết chương trình đầu tiên thì thử tìm hiểu làm thế nào có hello world xuất hiện.
Rõ ràng trong file index.php chẳng thấy đâu mà có nó ?
tìm hiểu thì trong thư mục \application\classes\Controller có tập tin welcome.php với nội dung như sau
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Welcome extends Controller {
public function action_index()
{
$this->response->body('hello, world!');
}
} // End Welcome
như ta đã biết Kohana cũng như nhưng Php mvc framework khác, kohana cũng có các khái niệm như controller, model, view.
Mặc định một controller sẽ đuợc gọi như sau trong kohana:
http://đường dẫn /<controller_name>/<action>
ở đây mình sử dụng localhost/kohana/ để làm ví dụ.
với đoạn code trên thì rõ ràng có 1 class Controller_Welcome trong đó có action_index thể hiện nội dung. Như vậy là cần viết một control để thể hiện nội dung web. như vậy đúng ra phải gõ là http://localhost/kohana/index.php/Welcome/index để thể hiện. cũng không khó nhỉ.
Vậy chúng ta hãy bắt đầu tạo một trang hiện tạo một controller đơn giản với kohana.
Đầu tiên mình sẽ tạo một controller và đặt tên là home, trong folder classes/controller mình tạo file home.php và nội dung file như sau:
<?php
class Controller_Home extends Controller
{
public function action_index()
{
$this->response->body(‘chào mừng bạn đến với hoaiphan.com’);
}
}
Theo như class Controller_Home chúng ta sẽ có controller name là home và action name là index
Vậy url đầy đủ để gọi controller đó là http://localhost/index.php/home/index, nếu màn hình hiện chữ Welcome thì có nghĩa là web của bạn đã đuợc cấu hình chính xác.
Nếu muốn mặc định khi gõ http://localhost/kohana thì vào đúng control mà mình mới viết thì cần làm như sau
*/
Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'home',
'action' => 'index',
));
/*
Và thử thì chỉ cần gõ http://localhost/kohana thì sẽ xuất hiện chào mừng bạn đến với hoaiphan.com
Nếu muốn gọi đúng controller mà không phải gõ http://localhost/index.php/home/index chỉ cần gõ http://localhost/home/index
Thì viết thêm file .htaccess như sau
# Turn on URL rewriting
RewriteEngine On
# Installation directory
RewriteBase /
# Protect hidden files from being viewed
<Files .*>
Order Deny,Allow
Deny From All
</Files>
# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* yourdomain_URL/index.php/$0 [PT]
hãy theo dõi tiếp các bài về kohana , nếu có gì thắc mắc của trao đổi mình sẽ cố gắng giải đáp trong khả năng có thể.
(còn tiếp)