1: <?php
 2: /**
 3:  * Base Log Engine class
 4:  *
 5:  * CakePHP(tm) :  Rapid Development Framework (http://cakephp.org)
 6:  * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 7:  *
 8:  * Licensed under The MIT License
 9:  * For full copyright and license information, please see the LICENSE.txt
10:  * Redistributions of files must retain the above copyright notice.
11:  *
12:  * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
13:  * @link          http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project
14:  * @package       Cake.Log.Engine
15:  * @since         CakePHP(tm) v 2.2
16:  * @license       http://www.opensource.org/licenses/mit-license.php MIT License
17:  */
18: 
19: App::uses('CakeLogInterface', 'Log');
20: 
21: /**
22:  * Base log engine class.
23:  *
24:  * @package       Cake.Log.Engine
25:  */
26: abstract class BaseLog implements CakeLogInterface {
27: 
28: /**
29:  * Engine config
30:  *
31:  * @var string
32:  */
33:     protected $_config = array();
34: 
35: /**
36:  * Constructor
37:  *
38:  * @param array $config Configuration array
39:  */
40:     public function __construct($config = array()) {
41:         $this->config($config);
42:     }
43: 
44: /**
45:  * Sets instance config. When $config is null, returns config array
46:  *
47:  * Config
48:  *
49:  * - `types` string or array, levels the engine is interested in
50:  * - `scopes` string or array, scopes the engine is interested in
51:  *
52:  * @param array $config engine configuration
53:  * @return array
54:  */
55:     public function config($config = array()) {
56:         if (!empty($config)) {
57:             foreach (array('types', 'scopes') as $option) {
58:                 if (isset($config[$option]) && is_string($config[$option])) {
59:                     $config[$option] = array($config[$option]);
60:                 }
61:             }
62:             $this->_config = $config;
63:         }
64:         return $this->_config;
65:     }
66: 
67: }
68: