01/10/2018, 16:58

MVC CMS - Viết thư viện Get config

Trong bài này chúng ta sẽ tiếp tục xây dựng thư viện thư viện giúp chúng ta có thể lấy được các giá trị được setup trong file cấu hình config.php. Hầu hết các Framework bây giờ thường chia nhỏ các file cấu hình database.php, config.php và chúng ta phải xây dựng một cơ chế load các file config này. ...

Trong bài này chúng ta sẽ tiếp tục xây dựng thư viện thư viện giúp chúng ta có thể lấy được các giá trị được setup trong file cấu hình config.php. Hầu hết các Framework bây giờ thường chia nhỏ các file cấu hình database.php, config.php và chúng ta phải xây dựng một cơ chế load các file config này. Nhưng trong TzCMS mình chỉ sử dụng duy nhất một file config.

1. Tạo file config.php

Đầu tiên bạn xem cách tổ chức file config.php.

/*
|--------------------------------------------------------------------------
| System path
|--------------------------------------------------------------------------
*/
define('ROOT',	dirname( __FILE__ ));
define('DIR_CORE',  ROOT . '/core');
define('DIR_LANG',  DIR_CORE . '/language');
define('DEVELOPMENT_ENVIRONMENT', FALSE);
define('DEFAULT_CONTROLLER', 'home');
define('DEFAULT_ACTION', 'index');
/*
|------------------------------------
| Default language
|------------------------------------
*/
define("DEFAULT_LANG","english");
/*
|--------------------------------------------------------------------------
| Turning ON/OFF debug mode (for maintenance mode)
|--------------------------------------------------------------------------
*/
define("DEBUG_MODE",false);
/*
|--------------------------------------------------------------------------
| System settings
|--------------------------------------------------------------------------
*/
$GLOBALS['config'] = array( 'db' => array( 'dbHost' => 'localhost', 'dbName' => 'tzcms_db', 'dbUser' => 'root', 'dbPass' => ', ), 'cookie' => array( 'cookie_name' => 'TzCMS_token', 'cookie_expiry' => 604800 ), 'session' => array( 'session_name' => 'TzCMS_user', 'token_name' => 'TzCMS_token' ) )

2. Xây dựng thư viện Get Config.

Bạn tạo một file Config.php nằm trong thư mục core/common/config.class.php.

<?php if (!defined('ABSPATH')) exit('No direct script access allowed'); 
	/*
	|------------------------------------------------------------
	| TzCMS - Content management system website
	| @Author	: Tz.Thiêm (buivanthiem.it@gmail.com)
	| @Date		: 2009/1/18
	| @Version	: 2.1.1
	| @Copyright (c) TzCMS. All Rights Reserved,
	|------------------------------------------------------------
	| Email: info@chiasephp.net
	| Website: http://www.chiasephp.net
	| -----------------------------------------------------------
	*/
	class Config{
		/*
		|---------------------------------------
		| Get item config
		| @ param   string
		| @ desc    Hàm get config item, tham số truyền vào là tên của item
		|---------------------------------------
		*/
		public static function get($path=null){
			if($path){
				$config = $GLOBALS['config'];
				$path = explode('/',$path);
				
				foreach($path as $bit){
					if(isset($config[$bit])){
						$config = $config[$bit];
					}
				}
				return $config;
			}
			
			return false;
		}
	}
?>

Trong lớp này mình định nghĩa một hàm chính là.

  • Hàm get() dùng để lấy một key config nào đó 

3. Thao tác với thư viện config trong Controller

Giả sử bạn cần lấy giá trị cookie/cookie_expir. Bạn viết code như sau.

$cookie_expiry = Config::get('cookie/cookie_expiry');

4. Tổng kết

Qua bài viết này mình đã hướng dẫn các bạn xây dựng được hàm lấy các giá trị config trong file config.php. Trong bài viết tiếp theo mình sẽ hướng dẫn các bạn xây dựng lớp thư viện Controller trong TzCMS.

0