// Mảng dữ liệu lưu giữ cấu hình $configArray = array[ 'webhost' => 'www.example.com', 'database' => array[ 'adapter' => 'pdo_mysql', 'params' => array[ 'host' => 'db.example.com', 'username' => 'dbuser', 'password' => 'secret', 'dbname' => 'mydatabase' ] ] ]; // Khởi tạo đối tượng và nạp dữ liệu $configArray $config = new Zend\Config\Config[$configArray]; //Tiến hành đọc bất kỳ dữ liệu nào bằng toán tử ->,[], hàm get[] echo $config->webhost; echo $config->database->params->host; echo $config['database']['params']->dbname; echo $config->get['webhost','myhost.vn']; echo $config->webhost;
4 là cầu nối để truy cập dữ liệu được cấu hình trong code của ứng dụng. Dữ liệu cấu hình cho ứng dụng có thể đến từ các nguồn cấp khác nhau như:
// Mảng dữ liệu lưu giữ cấu hình $configArray = array[ 'webhost' => 'www.example.com', 'database' => array[ 'adapter' => 'pdo_mysql', 'params' => array[ 'host' => 'db.example.com', 'username' => 'dbuser', 'password' => 'secret', 'dbname' => 'mydatabase' ] ] ]; // Khởi tạo đối tượng và nạp dữ liệu $configArray $config = new Zend\Config\Config[$configArray]; //Tiến hành đọc bất kỳ dữ liệu nào bằng toán tử ->,[], hàm get[] echo $config->webhost; echo $config->database->params->host; echo $config['database']['params']->dbname; echo $config->get['webhost','myhost.vn']; echo $config->webhost;
5,
// Mảng dữ liệu lưu giữ cấu hình $configArray = array[ 'webhost' => 'www.example.com', 'database' => array[ 'adapter' => 'pdo_mysql', 'params' => array[ 'host' => 'db.example.com', 'username' => 'dbuser', 'password' => 'secret', 'dbname' => 'mydatabase' ] ] ]; // Khởi tạo đối tượng và nạp dữ liệu $configArray $config = new Zend\Config\Config[$configArray]; //Tiến hành đọc bất kỳ dữ liệu nào bằng toán tử ->,[], hàm get[] echo $config->webhost; echo $config->database->params->host; echo $config['database']['params']->dbname; echo $config->get['webhost','myhost.vn']; echo $config->webhost;
6,
// Mảng dữ liệu lưu giữ cấu hình $configArray = array[ 'webhost' => 'www.example.com', 'database' => array[ 'adapter' => 'pdo_mysql', 'params' => array[ 'host' => 'db.example.com', 'username' => 'dbuser', 'password' => 'secret', 'dbname' => 'mydatabase' ] ] ]; // Khởi tạo đối tượng và nạp dữ liệu $configArray $config = new Zend\Config\Config[$configArray]; //Tiến hành đọc bất kỳ dữ liệu nào bằng toán tử ->,[], hàm get[] echo $config->webhost; echo $config->database->params->host; echo $config['database']['params']->dbname; echo $config->get['webhost','myhost.vn']; echo $config->webhost;
7, XML hoặc
// Mảng dữ liệu lưu giữ cấu hình $configArray = array[ 'webhost' => 'www.example.com', 'database' => array[ 'adapter' => 'pdo_mysql', 'params' => array[ 'host' => 'db.example.com', 'username' => 'dbuser', 'password' => 'secret', 'dbname' => 'mydatabase' ] ] ]; // Khởi tạo đối tượng và nạp dữ liệu $configArray $config = new Zend\Config\Config[$configArray]; //Tiến hành đọc bất kỳ dữ liệu nào bằng toán tử ->,[], hàm get[] echo $config->webhost; echo $config->database->params->host; echo $config['database']['params']->dbname; echo $config->get['webhost','myhost.vn']; echo $config->webhost;
8.
Khởi tạo và đọc dữ liệu Config từ mảng dữ liệu PHP
Nếu bạn cung cấp dữ liệu config từ một mảng dữ liệu PHP thì khởi tạo đối tượng Zend\Config\Config để đọc dữ liệu như sau:
Dùng hàm tạo:
new Zend\Config\Config[array $array, $allowModifications = false]
// Mảng dữ liệu lưu giữ cấu hình $configArray = array[ 'webhost' => 'www.example.com', 'database' => array[ 'adapter' => 'pdo_mysql', 'params' => array[ 'host' => 'db.example.com', 'username' => 'dbuser', 'password' => 'secret', 'dbname' => 'mydatabase' ] ] ]; // Khởi tạo đối tượng và nạp dữ liệu $configArray $config = new Zend\Config\Config[$configArray]; //Tiến hành đọc bất kỳ dữ liệu nào bằng toán tử ->,[], hàm get[] echo $config->webhost; echo $config->database->params->host; echo $config['database']['params']->dbname; echo $config->get['webhost','myhost.vn']; echo $config->webhost;
Lưu ý khi sử dụng Zend\Config\Config
Khi cần truy cập dữ liệu
// Mảng dữ liệu lưu giữ cấu hình $configArray = array[ 'webhost' => 'www.example.com', 'database' => array[ 'adapter' => 'pdo_mysql', 'params' => array[ 'host' => 'db.example.com', 'username' => 'dbuser', 'password' => 'secret', 'dbname' => 'mydatabase' ] ] ]; // Khởi tạo đối tượng và nạp dữ liệu $configArray $config = new Zend\Config\Config[$configArray]; //Tiến hành đọc bất kỳ dữ liệu nào bằng toán tử ->,[], hàm get[] echo $config->webhost; echo $config->database->params->host; echo $config['database']['params']->dbname; echo $config->get['webhost','myhost.vn']; echo $config->webhost;
9 có thể dùng một trong các cách:
- dùng toán tử $configLocal = new Zend\Config\Config[$configArrayLocal]; $config = new Zend\Config\Config[$configArray]; $config->merge[$localConfig]; 0
- dùng toán tử mảng $configLocal = new Zend\Config\Config[$configArrayLocal]; $config = new Zend\Config\Config[$configArray]; $config->merge[$localConfig]; 1
- dùng hàm $configLocal = new Zend\Config\Config[$configArrayLocal]; $config = new Zend\Config\Config[$configArray]; $config->merge[$localConfig]; 2.
- $configLocal = new Zend\Config\Config[$configArrayLocal]; $config = new Zend\Config\Config[$configArray]; $config->merge[$localConfig]; 3 kế thừa $configLocal = new Zend\Config\Config[$configArrayLocal]; $config = new Zend\Config\Config[$configArray]; $config->merge[$localConfig]; 4 và $configLocal = new Zend\Config\Config[$configArrayLocal]; $config = new Zend\Config\Config[$configArray]; $config->merge[$localConfig]; 5 do đó bạn có thể duyệt các thành phần bằng $configLocal = new Zend\Config\Config[$configArrayLocal]; $config = new Zend\Config\Config[$configArray]; $config->merge[$localConfig]; 6, sử dụng hàm $configLocal = new Zend\Config\Config[$configArrayLocal]; $config = new Zend\Config\Config[$configArray]; $config->merge[$localConfig]; 7 ...
- Mặc định thì dữ liệu trong Zend\Config\Config sẽ ở tình trạng chỉ đọc và bạn không thể dùng toán tử gán [ví dụ $config->database->host = 'example.com'; sẽ gây lỗi]. Tuy nhiên bạn có thể chỉ ra là có phép ghi đè dữ liệu nếu khi bạn khởi tạo bạn chỉ định thuộc tính $allowModifications = true khi khởi tạo [Ví dụ $config = new Zend\Config\Config[$configArray, $configLocal = new Zend\Config\Config[$configArrayLocal]; $config = new Zend\Config\Config[$configArray]; $config->merge[$localConfig]; 8];
- Nếu có 2 đối tượng Zend\Config\Config thì bạn có thể trộn chúng vào làm một bằng hàm $configLocal = new Zend\Config\Config[$configArrayLocal]; $config = new Zend\Config\Config[$configArray]; $config->merge[$localConfig]; 9 như ví dụ dưới đây:
$configLocal = new Zend\Config\Config[$configArrayLocal]; $config = new Zend\Config\Config[$configArray]; $config->merge[$localConfig];
- Lưu ý bạn chỉ có thể sử dụng hàm
// config.php
www.example.com
//Gộp thêm từ file xml khác
Thì dữ liệu được nạp vào như sau:
$reader = new Zend\Config\Reader\Xml[]; $data = $reader->fromFile['/path/to/config.xml']; echo $data['webhost']; // prints "www.example.com" echo $data['database']['params']['dbname']['value'];
Zend\Config\Reader\Json
Zend\Config\Reader\Yaml
Zend\Config\Reader\JavaProperties
Các định dạng Json,Yaml, JavaProperties được thực hiện tương tự.
Lưu giữ liệu config vào file
Các class trong Zend\Config\Writer gồm có:
- Zend\Config\Writer\Ini
- Zend\Config\Writer\Xml
- Zend\Config\Writer\PhpArray
- Zend\Config\Writer\Json
- Zend\Config\Writer\Yaml
Cung cấp các chức năng để lưu config ra các file theo định dạng Ini,Xml,PhpArray, Json, Yaml. Các lớp này có giao diện tương tự nhau nên bạn chỉ cần tìm hiểu một ví dụ sau đó áp dụng cho định dạng nào là tùy thích vì chúng có hai hàm
// config.php