source: sourcecode/application/libraries/PHPExcel/CalcEngine/Logger.php @ 1

Last change on this file since 1 was 1, checked in by dungnv, 11 years ago
File size: 3.9 KB
Line 
1<?php
2/**
3 * PHPExcel
4 *
5 * Copyright (c) 2006 - 2014 PHPExcel
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20 *
21 * @category   PHPExcel
22 * @package    PHPExcel_Calculation
23 * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24 * @license     http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt   LGPL
25 * @version     1.8.0, 2014-03-02
26 */
27
28/**
29 * PHPExcel_CalcEngine_Logger
30 *
31 * @category    PHPExcel
32 * @package             PHPExcel_Calculation
33 * @copyright   Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
34 */
35class PHPExcel_CalcEngine_Logger {
36
37        /**
38         * Flag to determine whether a debug log should be generated by the calculation engine
39         *              If true, then a debug log will be generated
40         *              If false, then a debug log will not be generated
41         *
42         * @var boolean
43         */
44        private $_writeDebugLog = FALSE;
45
46        /**
47         * Flag to determine whether a debug log should be echoed by the calculation engine
48         *              If true, then a debug log will be echoed
49         *              If false, then a debug log will not be echoed
50         * A debug log can only be echoed if it is generated
51         *
52         * @var boolean
53         */
54        private $_echoDebugLog = FALSE;
55
56        /**
57         * The debug log generated by the calculation engine
58         *
59         * @var string[]
60         */
61        private $_debugLog = array();
62
63        /**
64         * The calculation engine cell reference stack
65         *
66         * @var PHPExcel_CalcEngine_CyclicReferenceStack
67         */
68        private $_cellStack;
69
70       
71        /**
72         * Instantiate a Calculation engine logger
73         *
74         * @param  PHPExcel_CalcEngine_CyclicReferenceStack $stack
75         */
76        public function __construct(PHPExcel_CalcEngine_CyclicReferenceStack $stack) {
77                $this->_cellStack = $stack;
78        }
79
80        /**
81         * Enable/Disable Calculation engine logging
82         *
83         * @param  boolean $pValue
84         */
85        public function setWriteDebugLog($pValue = FALSE) {
86                $this->_writeDebugLog = $pValue;
87        }
88
89        /**
90         * Return whether calculation engine logging is enabled or disabled
91         *
92         * @return  boolean
93         */
94        public function getWriteDebugLog() {
95                return $this->_writeDebugLog;
96        }
97
98        /**
99         * Enable/Disable echoing of debug log information
100         *
101         * @param  boolean $pValue
102         */
103        public function setEchoDebugLog($pValue = FALSE) {
104                $this->_echoDebugLog = $pValue;
105        }
106
107        /**
108         * Return whether echoing of debug log information is enabled or disabled
109         *
110         * @return  boolean
111         */
112        public function getEchoDebugLog() {
113                return $this->_echoDebugLog;
114        }
115
116        /**
117         * Write an entry to the calculation engine debug log
118         */
119        public function writeDebugLog() {
120                //      Only write the debug log if logging is enabled
121                if ($this->_writeDebugLog) {
122                        $message = implode(func_get_args());
123                        $cellReference = implode(' -> ', $this->_cellStack->showStack());
124                        if ($this->_echoDebugLog) {
125                                echo $cellReference,
126                                        ($this->_cellStack->count() > 0 ? ' => ' : ''),
127                                        $message,
128                                        PHP_EOL;
129                        }
130                        $this->_debugLog[] = $cellReference .
131                                ($this->_cellStack->count() > 0 ? ' => ' : '') .
132                                $message;
133                }
134        }       //      function _writeDebug()
135
136        /**
137         * Clear the calculation engine debug log
138         */
139        public function clearLog() {
140                $this->_debugLog = array();
141        }       //      function flushLogger()
142
143        /**
144         * Return the calculation engine debug log
145         *
146         * @return  string[]
147         */
148        public function getLog() {
149                return $this->_debugLog;
150        }       //      function flushLogger()
151
152}       //      class PHPExcel_CalcEngine_Logger
153
Note: See TracBrowser for help on using the repository browser.